window: Don't use GTK+ to fetch the drag threshold

Just look it up in GSettings ourselves.
This commit is contained in:
Jasper St. Pierre 2014-08-15 18:21:13 -04:00
parent c3e87ee896
commit 67be4e2bf3
5 changed files with 23 additions and 19 deletions

View File

@ -67,6 +67,7 @@
#define SCHEMA_INTERFACE "org.gnome.desktop.interface" #define SCHEMA_INTERFACE "org.gnome.desktop.interface"
#define SCHEMA_INPUT_SOURCES "org.gnome.desktop.input-sources" #define SCHEMA_INPUT_SOURCES "org.gnome.desktop.input-sources"
#define SCHEMA_XSETTINGS "org.gnome.settings-daemon.plugins.xsettings" #define SCHEMA_XSETTINGS "org.gnome.settings-daemon.plugins.xsettings"
#define SCHEMA_MOUSE "org.gnome.settings-daemon.peripherals.mouse"
#define SETTINGS(s) g_hash_table_lookup (settings_schemas, (s)) #define SETTINGS(s) g_hash_table_lookup (settings_schemas, (s))
@ -101,6 +102,7 @@ static gboolean gnome_animations = TRUE;
static char *cursor_theme = NULL; static char *cursor_theme = NULL;
static int cursor_size = 24; static int cursor_size = 24;
static int draggable_border_width = 10; static int draggable_border_width = 10;
static int drag_threshold;
static gboolean resize_with_right_button = FALSE; static gboolean resize_with_right_button = FALSE;
static gboolean edge_tiling = FALSE; static gboolean edge_tiling = FALSE;
static gboolean force_fullscreen = TRUE; static gboolean force_fullscreen = TRUE;
@ -492,6 +494,13 @@ static MetaIntPreference preferences_int[] =
}, },
&draggable_border_width &draggable_border_width
}, },
{
{ "drag-threshold",
SCHEMA_MOUSE,
META_PREF_DRAG_THRESHOLD,
},
&drag_threshold
},
{ { NULL, 0, 0 }, NULL }, { { NULL, 0, 0 }, NULL },
}; };
@ -1924,6 +1933,9 @@ meta_preference_to_string (MetaPreference pref)
case META_PREF_DRAGGABLE_BORDER_WIDTH: case META_PREF_DRAGGABLE_BORDER_WIDTH:
return "DRAGGABLE_BORDER_WIDTH"; return "DRAGGABLE_BORDER_WIDTH";
case META_PREF_DRAG_THRESHOLD:
return "DRAG_TRHESHOLD";
case META_PREF_DYNAMIC_WORKSPACES: case META_PREF_DYNAMIC_WORKSPACES:
return "DYNAMIC_WORKSPACES"; return "DYNAMIC_WORKSPACES";
@ -2389,6 +2401,12 @@ meta_prefs_get_draggable_border_width (void)
return draggable_border_width; return draggable_border_width;
} }
int
meta_prefs_get_drag_threshold (void)
{
return drag_threshold;
}
void void
meta_prefs_set_force_fullscreen (gboolean whether) meta_prefs_set_force_fullscreen (gboolean whether)
{ {

View File

@ -5534,7 +5534,7 @@ update_move (MetaWindow *window,
* because it's about the right size * because it's about the right size
*/ */
#define DRAG_THRESHOLD_TO_SHAKE_THRESHOLD_FACTOR 6 #define DRAG_THRESHOLD_TO_SHAKE_THRESHOLD_FACTOR 6
shake_threshold = meta_ui_get_drag_threshold (window->screen->ui) * shake_threshold = meta_prefs_get_drag_threshold () *
DRAG_THRESHOLD_TO_SHAKE_THRESHOLD_FACTOR; DRAG_THRESHOLD_TO_SHAKE_THRESHOLD_FACTOR;
if (snap) if (snap)
@ -5726,7 +5726,7 @@ check_resize_unmaximize(MetaWindow *window,
#define DRAG_THRESHOLD_TO_RESIZE_THRESHOLD_FACTOR 3 #define DRAG_THRESHOLD_TO_RESIZE_THRESHOLD_FACTOR 3
threshold = meta_ui_get_drag_threshold (window->screen->ui) * threshold = meta_prefs_get_drag_threshold () *
DRAG_THRESHOLD_TO_RESIZE_THRESHOLD_FACTOR; DRAG_THRESHOLD_TO_RESIZE_THRESHOLD_FACTOR;
new_unmaximize = 0; new_unmaximize = 0;

View File

@ -102,7 +102,8 @@ typedef enum
META_PREF_WORKSPACES_ONLY_ON_PRIMARY, META_PREF_WORKSPACES_ONLY_ON_PRIMARY,
META_PREF_DRAGGABLE_BORDER_WIDTH, META_PREF_DRAGGABLE_BORDER_WIDTH,
META_PREF_AUTO_MAXIMIZE, META_PREF_AUTO_MAXIMIZE,
META_PREF_CENTER_NEW_WINDOWS META_PREF_CENTER_NEW_WINDOWS,
META_PREF_DRAG_THRESHOLD,
} MetaPreference; } MetaPreference;
typedef void (* MetaPrefsChangedFunc) (MetaPreference pref, typedef void (* MetaPrefsChangedFunc) (MetaPreference pref,
@ -166,6 +167,7 @@ void meta_prefs_set_force_fullscreen (gboolean whether);
gboolean meta_prefs_get_workspaces_only_on_primary (void); gboolean meta_prefs_get_workspaces_only_on_primary (void);
int meta_prefs_get_draggable_border_width (void); int meta_prefs_get_draggable_border_width (void);
int meta_prefs_get_drag_threshold (void);
gboolean meta_prefs_get_ignore_request_hide_titlebar (void); gboolean meta_prefs_get_ignore_request_hide_titlebar (void);
void meta_prefs_set_ignore_request_hide_titlebar (gboolean whether); void meta_prefs_set_ignore_request_hide_titlebar (gboolean whether);

View File

@ -654,20 +654,6 @@ meta_ui_window_is_widget (MetaUI *ui,
return FALSE; return FALSE;
} }
int
meta_ui_get_drag_threshold (MetaUI *ui)
{
GtkSettings *settings;
int threshold;
settings = gtk_widget_get_settings (GTK_WIDGET (ui->frames));
threshold = 8;
g_object_get (G_OBJECT (settings), "gtk-dnd-drag-threshold", &threshold, NULL);
return threshold;
}
MetaUIDirection MetaUIDirection
meta_ui_get_direction (void) meta_ui_get_direction (void)
{ {

View File

@ -123,8 +123,6 @@ gboolean meta_ui_have_a_theme (void);
gboolean meta_ui_window_is_widget (MetaUI *ui, gboolean meta_ui_window_is_widget (MetaUI *ui,
Window xwindow); Window xwindow);
int meta_ui_get_drag_threshold (MetaUI *ui);
MetaUIDirection meta_ui_get_direction (void); MetaUIDirection meta_ui_get_direction (void);
#endif #endif