Skip to content

Commit c30f31f

Browse files
authored
Fix a focus bug when opening a new maximized window (#227)
This fixes a bug that causes a new maximized window to not be focussed in Cinnamon on X11.
1 parent 69c93a2 commit c30f31f

File tree

1 file changed

+20
-12
lines changed

1 file changed

+20
-12
lines changed

src/xviewer-window.c

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -920,7 +920,6 @@ xviewer_window_display_image (XviewerWindow *window, XviewerImage *image)
920920
{
921921
XviewerWindowPrivate *priv;
922922
GFile *file;
923-
gboolean is_maximized;
924923

925924
g_return_if_fail (XVIEWER_IS_WINDOW (window));
926925
g_return_if_fail (XVIEWER_IS_IMAGE (image));
@@ -957,17 +956,6 @@ xviewer_window_display_image (XviewerWindow *window, XviewerImage *image)
957956
file,
958957
(GDestroyNotify) g_object_unref);
959958

960-
is_maximized = gtk_window_is_maximized (GTK_WINDOW (window));
961-
if (g_settings_get_boolean (window->priv->window_settings, XVIEWER_CONF_WINDOW_MAXIMIZED))
962-
{
963-
if (!is_maximized)
964-
gtk_window_maximize (GTK_WINDOW (window));
965-
}
966-
else
967-
{
968-
if (is_maximized)
969-
gtk_window_unmaximize (GTK_WINDOW (window));
970-
}
971959

972960
xviewer_window_update_openwith_menu (window, image);
973961
}
@@ -6027,6 +6015,25 @@ xviewer_window_focus_out_event (GtkWidget *widget, GdkEventFocus *event)
60276015
return GTK_WIDGET_CLASS (xviewer_window_parent_class)->focus_out_event (widget, event);
60286016
}
60296017

6018+
static gboolean
6019+
xviewer_window_map_event (GtkWidget *widget, GdkEventAny *event)
6020+
{
6021+
XviewerWindow *window = XVIEWER_WINDOW (widget);
6022+
6023+
gboolean is_maximized = gtk_window_is_maximized (GTK_WINDOW (window));
6024+
if (g_settings_get_boolean (window->priv->window_settings, XVIEWER_CONF_WINDOW_MAXIMIZED))
6025+
{
6026+
if (!is_maximized)
6027+
gtk_window_maximize (GTK_WINDOW (window));
6028+
}
6029+
else
6030+
{
6031+
if (is_maximized)
6032+
gtk_window_unmaximize (GTK_WINDOW (window));
6033+
}
6034+
return FALSE;
6035+
}
6036+
60306037
static void
60316038
xviewer_window_set_property (GObject *object,
60326039
guint property_id,
@@ -6152,6 +6159,7 @@ xviewer_window_class_init (XviewerWindowClass *class)
61526159
widget_class->button_press_event = xviewer_window_button_press;
61536160
widget_class->drag_data_received = xviewer_window_drag_data_received;
61546161
widget_class->focus_out_event = xviewer_window_focus_out_event;
6162+
widget_class->map_event = xviewer_window_map_event;
61556163

61566164
/**
61576165
* XviewerWindow:gallery-position:

0 commit comments

Comments
 (0)