@@ -133,13 +133,6 @@ struct _Imageui {
133133
134134 gboolean should_animate ;
135135
136- /* We need to detect ctrl-click and shift-click for region create and
137- * resize.
138- *
139- * Windows doesn't seem to support device polling, so we record ctrl and
140- * shift state here in the keyboard handler.
141- */
142- guint modifiers ;
143136};
144137
145138G_DEFINE_TYPE (Imageui , imageui , GTK_TYPE_WIDGET );
@@ -969,16 +962,6 @@ imageui_key_pressed(GtkEventControllerKey *self,
969962 handled = FALSE;
970963
971964 switch (keyval ) {
972- case GDK_KEY_Control_L :
973- case GDK_KEY_Control_R :
974- imageui -> modifiers |= GDK_CONTROL_MASK ;
975- break ;
976-
977- case GDK_KEY_Shift_L :
978- case GDK_KEY_Shift_R :
979- imageui -> modifiers |= GDK_SHIFT_MASK ;
980- break ;
981-
982965 case GDK_KEY_plus :
983966 imageui_magin (imageui );
984967 handled = TRUE;
@@ -1099,16 +1082,6 @@ imageui_key_released(GtkEventControllerKey *self,
10991082 handled = FALSE;
11001083
11011084 switch (keyval ) {
1102- case GDK_KEY_Control_L :
1103- case GDK_KEY_Control_R :
1104- imageui -> modifiers &= ~GDK_CONTROL_MASK ;
1105- break ;
1106-
1107- case GDK_KEY_Shift_L :
1108- case GDK_KEY_Shift_R :
1109- imageui -> modifiers &= ~GDK_SHIFT_MASK ;
1110- break ;
1111-
11121085 case GDK_KEY_i :
11131086 case GDK_KEY_o :
11141087 imageui -> zoom_rate = 1.0 ;
@@ -1145,6 +1118,7 @@ imageui_drag_begin(GtkEventControllerMotion *self,
11451118 gdouble start_x , gdouble start_y , gpointer user_data )
11461119{
11471120 Imageui * imageui = IMAGEUI (user_data );
1121+ Imagewindow * win = IMAGEWINDOW (gtk_widget_get_root (GTK_WIDGET (imageui )));
11481122
11491123 Regionview * regionview ;
11501124
@@ -1164,7 +1138,7 @@ imageui_drag_begin(GtkEventControllerMotion *self,
11641138 g_object_ref (regionview );
11651139 regionview -> start_area = regionview -> our_area ;
11661140 }
1167- else if (imageui -> modifiers & GDK_CONTROL_MASK ) {
1141+ else if (imagewindow_get_modifiers ( win ) & GDK_CONTROL_MASK ) {
11681142 imageui -> state = IMAGEUI_CREATE ;
11691143 double left ;
11701144 double top ;
@@ -1206,6 +1180,7 @@ imageui_drag_update(GtkEventControllerMotion *self,
12061180{
12071181 Imageui * imageui = IMAGEUI (user_data );
12081182 double zoom = imageui_get_zoom (imageui );
1183+ Imagewindow * win = IMAGEWINDOW (gtk_widget_get_root (GTK_WIDGET (imageui )));
12091184
12101185#ifdef DEBUG_VERBOSE
12111186 printf ("imageui_drag_update: offset_x = %g, offset_y = %g\n" ,
@@ -1220,7 +1195,7 @@ imageui_drag_update(GtkEventControllerMotion *self,
12201195 break ;
12211196
12221197 case IMAGEUI_SELECT :
1223- regionview_resize (imageui -> grabbed , imageui -> modifiers ,
1198+ regionview_resize (imageui -> grabbed , imagewindow_get_modifiers ( win ) ,
12241199 imageui -> tilesource -> display_width ,
12251200 imageui -> tilesource -> display_height ,
12261201 offset_x / zoom ,
@@ -1231,7 +1206,7 @@ imageui_drag_update(GtkEventControllerMotion *self,
12311206 break ;
12321207
12331208 case IMAGEUI_CREATE :
1234- regionview_resize (imageui -> floating , imageui -> modifiers ,
1209+ regionview_resize (imageui -> floating , imagewindow_get_modifiers ( win ) ,
12351210 imageui -> tilesource -> display_width ,
12361211 imageui -> tilesource -> display_height ,
12371212 offset_x / zoom ,
0 commit comments