summaryrefslogtreecommitdiff
path: root/gdk/x11
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2017-10-06 21:19:42 +0200
committerBenjamin Otte <otte@redhat.com>2017-10-06 21:23:39 +0200
commit43c212ac28f5f80e10c49590e569b6450098743f (patch)
treeae5210d90f79d313d3b4c88c88f5e00b87405e0e /gdk/x11
parent2ac66328a3edc0838c19b49fcb9468c473936c9c (diff)
downloadgtk+-43c212ac28f5f80e10c49590e569b6450098743f.tar.gz
build: Enable -Wswitch-enum and -Wswitch-default
This patch makes that work using 1 of 2 options: 1. Add all missing enums to the switch statement or 2. Cast the switch argument to a uint to avoid having to do that (mostly for GdkEventType). I even found a bug while doing that: clearing a GtkImage with a surface did not notify thae surface property. The reason for enabling this flag even though it is tedious at times is that it is very useful when adding values to an enum, because it makes GTK immediately warn about all the switch statements where this enum is relevant. And I expect changes to enums to be frequent during the GTK4 development cycle.
Diffstat (limited to 'gdk/x11')
-rw-r--r--gdk/x11/gdkasync.c2
-rw-r--r--gdk/x11/gdkdevice-xi2.c2
-rw-r--r--gdk/x11/gdkdevicemanager-xi2.c2
-rw-r--r--gdk/x11/gdkdisplay-x11.c7
-rw-r--r--gdk/x11/gdkdnd-x11.c28
-rw-r--r--gdk/x11/gdkkeys-x11.c17
-rw-r--r--gdk/x11/gdkmain-x11.c7
-rw-r--r--gdk/x11/gdkvisual-x11.c3
-rw-r--r--gdk/x11/gdkwindow-x11.c12
9 files changed, 63 insertions, 17 deletions
diff --git a/gdk/x11/gdkasync.c b/gdk/x11/gdkasync.c
index 51a088fc6d..d9b84c4af2 100644
--- a/gdk/x11/gdkasync.c
+++ b/gdk/x11/gdkasync.c
@@ -526,6 +526,8 @@ get_child_info_handler (Display *dpy,
handle_get_geometry_reply (dpy, state, repl);
}
break;
+ default:
+ break;
}
}
diff --git a/gdk/x11/gdkdevice-xi2.c b/gdk/x11/gdkdevice-xi2.c
index bdf28c4b0f..328d0007d1 100644
--- a/gdk/x11/gdkdevice-xi2.c
+++ b/gdk/x11/gdkdevice-xi2.c
@@ -233,7 +233,7 @@ gdk_x11_device_xi2_get_state (GdkDevice *device,
value = ((XIValuatorClassInfo *) class_info)->value;
use = gdk_device_get_axis_use (device, j);
- switch (use)
+ switch ((guint) use)
{
case GDK_AXIS_X:
case GDK_AXIS_Y:
diff --git a/gdk/x11/gdkdevicemanager-xi2.c b/gdk/x11/gdkdevicemanager-xi2.c
index 41d5faeafb..8779c65a72 100644
--- a/gdk/x11/gdkdevicemanager-xi2.c
+++ b/gdk/x11/gdkdevicemanager-xi2.c
@@ -1158,7 +1158,7 @@ translate_axes (GdkDevice *device,
use = gdk_device_get_axis_use (device, i);
val = *vals++;
- switch (use)
+ switch ((guint) use)
{
case GDK_AXIS_X:
case GDK_AXIS_Y:
diff --git a/gdk/x11/gdkdisplay-x11.c b/gdk/x11/gdkdisplay-x11.c
index 0c42e7c4a5..74c0ecf5f0 100644
--- a/gdk/x11/gdkdisplay-x11.c
+++ b/gdk/x11/gdkdisplay-x11.c
@@ -784,6 +784,8 @@ gdk_x11_display_translate_event (GdkEventTranslator *translator,
g_message ("visibility notify:\twindow: %ld full",
xevent->xvisibility.window);
break;
+ default:
+ break;
}
#endif /* G_ENABLE_DEBUG */
@@ -806,6 +808,7 @@ gdk_x11_display_translate_event (GdkEventTranslator *translator,
event->visibility.state = GDK_VISIBILITY_PARTIAL;
break;
+ default:
case VisibilityUnobscured:
event->visibility.state = GDK_VISIBILITY_UNOBSCURED;
break;
@@ -1217,6 +1220,8 @@ gdk_x11_display_translate_event (GdkEventTranslator *translator,
case XkbStateNotify:
_gdk_x11_keymap_state_changed (display, xevent);
break;
+ default:
+ break;
}
}
else
@@ -2363,6 +2368,8 @@ gdk_x11_display_broadcast_startup_message (GdkDisplay *display,
case '\\':
g_string_append_c (message, '\\');
break;
+ default:
+ break;
}
g_string_append_c (message, *p);
diff --git a/gdk/x11/gdkdnd-x11.c b/gdk/x11/gdkdnd-x11.c
index 03812d6b8d..11585dd930 100644
--- a/gdk/x11/gdkdnd-x11.c
+++ b/gdk/x11/gdkdnd-x11.c
@@ -1978,6 +1978,11 @@ gdk_drag_do_leave (GdkX11DragContext *context_x11,
xdnd_send_leave (context_x11);
break;
case GDK_DRAG_PROTO_ROOTWIN:
+ case GDK_DRAG_PROTO_MOTIF:
+ case GDK_DRAG_PROTO_WIN32_DROPFILES:
+ case GDK_DRAG_PROTO_OLE2:
+ case GDK_DRAG_PROTO_LOCAL:
+ case GDK_DRAG_PROTO_WAYLAND:
case GDK_DRAG_PROTO_NONE:
default:
break;
@@ -2277,6 +2282,11 @@ gdk_x11_drag_context_drag_motion (GdkDragContext *context,
break;
case GDK_DRAG_PROTO_ROOTWIN:
+ case GDK_DRAG_PROTO_MOTIF:
+ case GDK_DRAG_PROTO_WIN32_DROPFILES:
+ case GDK_DRAG_PROTO_OLE2:
+ case GDK_DRAG_PROTO_LOCAL:
+ case GDK_DRAG_PROTO_WAYLAND:
case GDK_DRAG_PROTO_NONE:
default:
break;
@@ -2360,8 +2370,13 @@ gdk_x11_drag_context_drag_motion (GdkDragContext *context,
gdk_event_free (temp_event);
}
break;
+ case GDK_DRAG_PROTO_MOTIF:
+ case GDK_DRAG_PROTO_WIN32_DROPFILES:
+ case GDK_DRAG_PROTO_OLE2:
+ case GDK_DRAG_PROTO_LOCAL:
+ case GDK_DRAG_PROTO_WAYLAND:
case GDK_DRAG_PROTO_NONE:
- g_warning ("GDK_DRAG_PROTO_NONE is not valid in gdk_drag_motion()");
+ g_warning ("Invalid drag protocol %u in gdk_drag_motion()", context->protocol);
break;
default:
break;
@@ -2401,7 +2416,13 @@ gdk_x11_drag_context_drag_drop (GdkDragContext *context,
case GDK_DRAG_PROTO_NONE:
g_warning ("GDK_DRAG_PROTO_NONE is not valid in gdk_drag_drop()");
break;
+ case GDK_DRAG_PROTO_MOTIF:
+ case GDK_DRAG_PROTO_WIN32_DROPFILES:
+ case GDK_DRAG_PROTO_OLE2:
+ case GDK_DRAG_PROTO_LOCAL:
+ case GDK_DRAG_PROTO_WAYLAND:
default:
+ g_warning ("Drag protocol %u is not valid in gdk_drag_drop()", context->protocol);
break;
}
}
@@ -3014,6 +3035,9 @@ gdk_dnd_handle_key_event (GdkDragContext *context,
case GDK_KEY_KP_Right:
dx = (state & GDK_MOD1_MASK) ? BIG_STEP : SMALL_STEP;
break;
+
+ default:
+ break;
}
}
@@ -3130,7 +3154,7 @@ gdk_x11_drag_context_handle_event (GdkDragContext *context,
if (!x11_context->grab_seat && event->type != GDK_DROP_FINISHED)
return FALSE;
- switch (event->type)
+ switch ((guint) event->type)
{
case GDK_MOTION_NOTIFY:
return gdk_dnd_handle_motion_event (context, &event->motion);
diff --git a/gdk/x11/gdkkeys-x11.c b/gdk/x11/gdkkeys-x11.c
index a51e8e462b..1814a4c877 100644
--- a/gdk/x11/gdkkeys-x11.c
+++ b/gdk/x11/gdkkeys-x11.c
@@ -490,6 +490,11 @@ get_direction (XkbDescRec *xkb,
case PANGO_DIRECTION_LTR:
rtl_minus_ltr--;
break;
+ case PANGO_DIRECTION_TTB_LTR:
+ case PANGO_DIRECTION_TTB_RTL:
+ case PANGO_DIRECTION_WEAK_LTR:
+ case PANGO_DIRECTION_WEAK_RTL:
+ case PANGO_DIRECTION_NEUTRAL:
default:
break;
}
@@ -1560,15 +1565,11 @@ gdk_x11_keymap_get_modifier_mask (GdkKeymap *keymap,
{
GdkX11Keymap *keymap_x11 = GDK_X11_KEYMAP (keymap);
- switch (intent)
- {
- case GDK_MODIFIER_INTENT_SHIFT_GROUP:
- return keymap_x11->group_switch_mask;
+ if (intent == GDK_MODIFIER_INTENT_SHIFT_GROUP)
+ return keymap_x11->group_switch_mask;
- default:
- return GDK_KEYMAP_CLASS (gdk_x11_keymap_parent_class)->get_modifier_mask (keymap,
- intent);
- }
+ return GDK_KEYMAP_CLASS (gdk_x11_keymap_parent_class)->get_modifier_mask (keymap,
+ intent);
}
static void
diff --git a/gdk/x11/gdkmain-x11.c b/gdk/x11/gdkmain-x11.c
index 7671f24448..19fd6fef35 100644
--- a/gdk/x11/gdkmain-x11.c
+++ b/gdk/x11/gdkmain-x11.c
@@ -130,11 +130,10 @@ _gdk_x11_convert_grab_status (gint status)
return GDK_GRAB_NOT_VIEWABLE;
case GrabFrozen:
return GDK_GRAB_FROZEN;
+ default:
+ g_assert_not_reached();
+ return 0;
}
-
- g_assert_not_reached();
-
- return 0;
}
/*
diff --git a/gdk/x11/gdkvisual-x11.c b/gdk/x11/gdkvisual-x11.c
index 0430db1ce5..56654e2226 100644
--- a/gdk/x11/gdkvisual-x11.c
+++ b/gdk/x11/gdkvisual-x11.c
@@ -124,6 +124,9 @@ _gdk_x11_screen_init_visuals (GdkScreen *screen,
case DirectColor:
visuals[nvisuals]->type = GDK_VISUAL_DIRECT_COLOR;
break;
+ default:
+ g_warn_if_reached ();
+ break;
}
visuals[nvisuals]->depth = visual_list[i].depth;
diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c
index 3bcff7d4ec..3d3d305a7b 100644
--- a/gdk/x11/gdkwindow-x11.c
+++ b/gdk/x11/gdkwindow-x11.c
@@ -953,6 +953,7 @@ _gdk_x11_display_create_window_impl (GdkDisplay *display,
break;
case GDK_WINDOW_CHILD:
+ default:
g_assert_not_reached ();
break;
}
@@ -1519,6 +1520,7 @@ gdk_window_x11_hide (GdkWindow *window)
case GDK_WINDOW_FOREIGN:
case GDK_WINDOW_ROOT:
case GDK_WINDOW_CHILD:
+ default:
break;
}
@@ -4300,6 +4302,8 @@ update_pos (MoveResizeData *mv_resize,
x += dx;
w -= dx;
break;
+ default:
+ break;
}
x = MAX (x, 0);
@@ -4486,11 +4490,16 @@ _gdk_x11_moveresize_handle_event (XEvent *event)
finish_drag (mv_resize);
}
break;
+ default:
+ break;
}
}
break;
#endif
+ default:
+ break;
+
}
return TRUE;
}
@@ -4607,6 +4616,7 @@ calculate_unmoving_origin (MoveResizeData *mv_resize)
mv_resize->moveresize_orig_x = rect.x + rect.width - width;
mv_resize->moveresize_orig_y = rect.y + rect.height - height;
break;
+ case GDK_GRAVITY_STATIC:
default:
mv_resize->moveresize_orig_x = rect.x;
mv_resize->moveresize_orig_y = rect.y;
@@ -4963,7 +4973,7 @@ gdk_x11_window_show_window_menu (GdkWindow *window,
double x_root, y_root;
XClientMessageEvent xclient = { 0 };
- switch (event->type)
+ switch ((guint) event->type)
{
case GDK_BUTTON_PRESS:
case GDK_BUTTON_RELEASE: