mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
Bug 798653 - Schedule Calendar event description pop up window does not track mouse position
The reporter was on Ubuntu 22.04.1 LTS which has wayland as the default display server. When tested on a Fedora 37 VM which was also using wayland the following message was seen on the terminal window... Gdk-Message: 15:23:51.862: Window 0x28b0de0 is a temporary window without parent, application will not be able to position it on screen. This fix sets the transient parent for the dense calendar pop up.
This commit is contained in:
parent
98251d59a6
commit
df9a6b0309
@ -494,17 +494,20 @@ _gdc_set_cal_min_size_req(GncDenseCal *dcal)
|
|||||||
}
|
}
|
||||||
|
|
||||||
GtkWidget*
|
GtkWidget*
|
||||||
gnc_dense_cal_new(void)
|
gnc_dense_cal_new (GtkWindow *parent)
|
||||||
{
|
{
|
||||||
GncDenseCal *dcal;
|
GncDenseCal *dcal = g_object_new (GNC_TYPE_DENSE_CAL, NULL);
|
||||||
dcal = g_object_new(GNC_TYPE_DENSE_CAL, NULL);
|
|
||||||
|
gtk_window_set_transient_for (GTK_WINDOW(dcal->transPopup),
|
||||||
|
GTK_WINDOW(parent));
|
||||||
|
|
||||||
return GTK_WIDGET(dcal);
|
return GTK_WIDGET(dcal);
|
||||||
}
|
}
|
||||||
|
|
||||||
GtkWidget*
|
GtkWidget*
|
||||||
gnc_dense_cal_new_with_model(GncDenseCalModel *model)
|
gnc_dense_cal_new_with_model (GtkWindow *parent, GncDenseCalModel *model)
|
||||||
{
|
{
|
||||||
GncDenseCal *cal = GNC_DENSE_CAL(gnc_dense_cal_new());
|
GncDenseCal *cal = GNC_DENSE_CAL(gnc_dense_cal_new (parent));
|
||||||
gnc_dense_cal_set_model(cal, model);
|
gnc_dense_cal_set_model(cal, model);
|
||||||
return GTK_WIDGET(cal);
|
return GTK_WIDGET(cal);
|
||||||
}
|
}
|
||||||
|
@ -117,8 +117,9 @@ typedef struct _gdc_mark_data
|
|||||||
GList *ourMarks;
|
GList *ourMarks;
|
||||||
} gdc_mark_data;
|
} gdc_mark_data;
|
||||||
|
|
||||||
GtkWidget* gnc_dense_cal_new (void);
|
GtkWidget* gnc_dense_cal_new (GtkWindow *parent);
|
||||||
GtkWidget* gnc_dense_cal_new_with_model (GncDenseCalModel *model);
|
GtkWidget* gnc_dense_cal_new_with_model (GtkWindow *parent,
|
||||||
|
GncDenseCalModel *model);
|
||||||
GType gnc_dense_cal_get_type (void);
|
GType gnc_dense_cal_get_type (void);
|
||||||
|
|
||||||
void gnc_dense_cal_set_model(GncDenseCal *cal, GncDenseCalModel *model);
|
void gnc_dense_cal_set_model(GncDenseCal *cal, GncDenseCalModel *model);
|
||||||
|
@ -1329,7 +1329,8 @@ schedXact_editor_create_freq_sel (GncSxEditorDialog *sxed)
|
|||||||
gtk_box_pack_start (GTK_BOX (b), example_cal_scrolled_win, TRUE, TRUE, 0);
|
gtk_box_pack_start (GTK_BOX (b), example_cal_scrolled_win, TRUE, TRUE, 0);
|
||||||
|
|
||||||
sxed->dense_cal_model = gnc_dense_cal_store_new (EX_CAL_NUM_MONTHS * 31);
|
sxed->dense_cal_model = gnc_dense_cal_store_new (EX_CAL_NUM_MONTHS * 31);
|
||||||
sxed->example_cal = GNC_DENSE_CAL (gnc_dense_cal_new_with_model (GNC_DENSE_CAL_MODEL (sxed->dense_cal_model)));
|
sxed->example_cal = GNC_DENSE_CAL(gnc_dense_cal_new_with_model (GTK_WINDOW(sxed->dialog),
|
||||||
|
GNC_DENSE_CAL_MODEL(sxed->dense_cal_model)));
|
||||||
g_assert (sxed->example_cal);
|
g_assert (sxed->example_cal);
|
||||||
gnc_dense_cal_set_num_months (sxed->example_cal, EX_CAL_NUM_MONTHS);
|
gnc_dense_cal_set_num_months (sxed->example_cal, EX_CAL_NUM_MONTHS);
|
||||||
gnc_dense_cal_set_months_per_col (sxed->example_cal, EX_CAL_MO_PER_COL);
|
gnc_dense_cal_set_months_per_col (sxed->example_cal, EX_CAL_MO_PER_COL);
|
||||||
|
@ -1263,7 +1263,8 @@ schedXact_editor_create_freq_sel (GncSxEditorDialog2 *sxed)
|
|||||||
|
|
||||||
b = GTK_BOX(gtk_builder_get_object (sxed->builder, "example_cal_hbox" ));
|
b = GTK_BOX(gtk_builder_get_object (sxed->builder, "example_cal_hbox" ));
|
||||||
sxed->dense_cal_model = gnc_dense_cal_store_new (EX_CAL_NUM_MONTHS * 31);
|
sxed->dense_cal_model = gnc_dense_cal_store_new (EX_CAL_NUM_MONTHS * 31);
|
||||||
sxed->example_cal = GNC_DENSE_CAL (gnc_dense_cal_new_with_model (GNC_DENSE_CAL_MODEL (sxed->dense_cal_model)));
|
sxed->example_cal = GNC_DENSE_CAL(gnc_dense_cal_new_with_model (GTK_WINDOW(sxed->dialog),
|
||||||
|
GNC_DENSE_CAL_MODEL (sxed->dense_cal_model)));
|
||||||
g_assert (sxed->example_cal);
|
g_assert (sxed->example_cal);
|
||||||
gnc_dense_cal_set_num_months (sxed->example_cal, EX_CAL_NUM_MONTHS);
|
gnc_dense_cal_set_num_months (sxed->example_cal, EX_CAL_NUM_MONTHS);
|
||||||
gnc_dense_cal_set_months_per_col( sxed->example_cal, EX_CAL_MO_PER_COL);
|
gnc_dense_cal_set_months_per_col( sxed->example_cal, EX_CAL_MO_PER_COL);
|
||||||
|
@ -380,7 +380,8 @@ sxftd_init( SXFromTransInfo *sxfti )
|
|||||||
|
|
||||||
w = GTK_WIDGET(gtk_builder_get_object(sxfti->builder, "ex_cal_frame" ));
|
w = GTK_WIDGET(gtk_builder_get_object(sxfti->builder, "ex_cal_frame" ));
|
||||||
sxfti->dense_cal_model = gnc_dense_cal_store_new(num_marks);
|
sxfti->dense_cal_model = gnc_dense_cal_store_new(num_marks);
|
||||||
sxfti->example_cal = GNC_DENSE_CAL(gnc_dense_cal_new_with_model(GNC_DENSE_CAL_MODEL(sxfti->dense_cal_model)));
|
sxfti->example_cal = GNC_DENSE_CAL(gnc_dense_cal_new_with_model (GTK_WINDOW(sxfti->dialog),
|
||||||
|
GNC_DENSE_CAL_MODEL(sxfti->dense_cal_model)));
|
||||||
g_object_ref_sink(sxfti->example_cal);
|
g_object_ref_sink(sxfti->example_cal);
|
||||||
|
|
||||||
g_assert(sxfti->example_cal);
|
g_assert(sxfti->example_cal);
|
||||||
|
@ -419,12 +419,15 @@ gnc_plugin_page_sx_list_create_widget (GncPluginPage *plugin_page)
|
|||||||
GtkWidget *vbox;
|
GtkWidget *vbox;
|
||||||
GtkWidget *label;
|
GtkWidget *label;
|
||||||
GtkWidget *swin;
|
GtkWidget *swin;
|
||||||
|
GtkWindow *window;
|
||||||
|
|
||||||
page = GNC_PLUGIN_PAGE_SX_LIST(plugin_page);
|
page = GNC_PLUGIN_PAGE_SX_LIST(plugin_page);
|
||||||
priv = GNC_PLUGIN_PAGE_SX_LIST_GET_PRIVATE(page);
|
priv = GNC_PLUGIN_PAGE_SX_LIST_GET_PRIVATE(page);
|
||||||
if (priv->widget != NULL)
|
if (priv->widget != NULL)
|
||||||
return priv->widget;
|
return priv->widget;
|
||||||
|
|
||||||
|
window = GTK_WINDOW(gnc_plugin_page_get_window (GNC_PLUGIN_PAGE(page)));
|
||||||
|
|
||||||
/* Create Vpaned widget for top level */
|
/* Create Vpaned widget for top level */
|
||||||
widget = gtk_paned_new (GTK_ORIENTATION_VERTICAL);
|
widget = gtk_paned_new (GTK_ORIENTATION_VERTICAL);
|
||||||
priv->widget = widget;
|
priv->widget = widget;
|
||||||
@ -517,7 +520,7 @@ gnc_plugin_page_sx_list_create_widget (GncPluginPage *plugin_page)
|
|||||||
|
|
||||||
{
|
{
|
||||||
priv->dense_cal_model = gnc_sx_instance_dense_cal_adapter_new (GNC_SX_INSTANCE_MODEL(priv->instances));
|
priv->dense_cal_model = gnc_sx_instance_dense_cal_adapter_new (GNC_SX_INSTANCE_MODEL(priv->instances));
|
||||||
priv->gdcal = GNC_DENSE_CAL(gnc_dense_cal_new_with_model (GNC_DENSE_CAL_MODEL(priv->dense_cal_model)));
|
priv->gdcal = GNC_DENSE_CAL(gnc_dense_cal_new_with_model (window, GNC_DENSE_CAL_MODEL(priv->dense_cal_model)));
|
||||||
g_object_ref_sink (priv->gdcal);
|
g_object_ref_sink (priv->gdcal);
|
||||||
|
|
||||||
gnc_dense_cal_set_months_per_col (priv->gdcal, 4);
|
gnc_dense_cal_set_months_per_col (priv->gdcal, 4);
|
||||||
|
Loading…
Reference in New Issue
Block a user