Handle mouse properties.
This commit is contained in:
parent
48afecfd9c
commit
f666939831
5 changed files with 79 additions and 6 deletions
3
gnome-settings-daemon/.cvsignore
Normal file
3
gnome-settings-daemon/.cvsignore
Normal file
|
@ -0,0 +1,3 @@
|
|||
Makefile
|
||||
Makefile.in
|
||||
gnome-settings-daemon
|
|
@ -69,6 +69,15 @@ gnome_settings_daemon_register_callback (const char *dir,
|
|||
}
|
||||
}
|
||||
|
||||
GtkWidget *
|
||||
gnome_settings_daemon_get_invisible (void)
|
||||
{
|
||||
static GtkWidget *invisible = NULL;
|
||||
if (invisible == NULL)
|
||||
invisible = gtk_invisible_new ();
|
||||
return invisible;
|
||||
}
|
||||
|
||||
static void
|
||||
config_notify (GConfEngine *client,
|
||||
guint cnxn_id,
|
||||
|
|
|
@ -25,10 +25,13 @@
|
|||
#define GNOME_SETTINGS_XSETTINGS_H
|
||||
|
||||
#include <gconf/gconf.h>
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
|
||||
typedef void (* KeyCallbackFunc) (GConfEntry *entry);
|
||||
|
||||
void gnome_settings_daemon_register_callback (const char *dir,
|
||||
KeyCallbackFunc func);
|
||||
void gnome_settings_daemon_register_callback (const char *dir,
|
||||
KeyCallbackFunc func);
|
||||
GtkWidget *gnome_settings_daemon_get_invisible (void);
|
||||
|
||||
#endif /* GNOME_SETTINGS_XSETTINGS_H */
|
||||
|
|
|
@ -1,10 +1,58 @@
|
|||
#include <X11/Xlib.h>
|
||||
#include <gdk/gdk.h>
|
||||
#include <gdk/gdkx.h>
|
||||
#include <gconf/gconf.h>
|
||||
#include <math.h>
|
||||
|
||||
#define MAX_BUTTONS 10
|
||||
|
||||
#if 0
|
||||
GdkWindow *window = NULL;
|
||||
|
||||
static gint
|
||||
locate_pointer_expose (GtkWidget *widget,
|
||||
GdkExposeEvent *event,
|
||||
gpointer data)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
create_window (void)
|
||||
{
|
||||
GdkWindowAttr attributes;
|
||||
attributes.window_type = GDK_WINDOW_CHILD;
|
||||
attributes.wclass = GDK_INPUT_OUTPUT;
|
||||
attributes.visual = gtk_widget_get_visual (GTK_WIDGET (tree_view));
|
||||
attributes.colormap = gtk_widget_get_colormap (GTK_WIDGET (tree_view));
|
||||
attributes.event_mask = GDK_VISIBILITY_NOTIFY_MASK | GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK;
|
||||
window = gdk_window_new (gdk_get_default_root_window (),
|
||||
&attributes,
|
||||
GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP);
|
||||
gdk_window_set_user_data (tree_view->priv->drag_highlight_window, gnome_settings_daemon_get_invisible ());
|
||||
g_signal_connect (G_OBJECT (gnome_settings_daemon_get_invisible ()),
|
||||
"expose_event",
|
||||
locate_pointer_expose,
|
||||
NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
locate_pointer (void)
|
||||
{
|
||||
GtkWidget *window;
|
||||
gint cursor_x, cursor_y;
|
||||
|
||||
window = gtk_window_new (GTK_WINDOW_POPUP);
|
||||
gdk_window_get_pointer (NULL, &cursor_x, &cursor_y, NULL);
|
||||
|
||||
if (window == NULL)
|
||||
create_window ();
|
||||
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
static void
|
||||
set_left_handed (gboolean left_handed)
|
||||
{
|
||||
|
@ -12,6 +60,7 @@ set_left_handed (gboolean left_handed)
|
|||
gint n_buttons, i;
|
||||
gint idx_1 = 0, idx_3 = 1;
|
||||
|
||||
g_print ("daemon: set_left_handed %d\n", left_handed);
|
||||
n_buttons = XGetPointerMapping (GDK_DISPLAY (), buttons, MAX_BUTTONS);
|
||||
|
||||
for (i = 0; i < n_buttons; i++)
|
||||
|
@ -95,10 +144,13 @@ set_drag_threshold (gint drag_threshold)
|
|||
static void
|
||||
mouse_callback (GConfEntry *entry)
|
||||
{
|
||||
g_print ("daemon: gconf callback %s\n", entry->key);
|
||||
if (! strcmp (entry->key, "/desktop/gnome/peripherals/mouse/left_handed"))
|
||||
{
|
||||
if (entry->value->type == GCONF_VALUE_BOOL)
|
||||
set_left_handed (gconf_value_get_bool (entry->value));
|
||||
else
|
||||
g_warning ("wrong type!\n");
|
||||
}
|
||||
else if (! strcmp (entry->key, "/desktop/gnome/peripherals/mouse/motion_acceleration"))
|
||||
{
|
||||
|
@ -122,5 +174,4 @@ gnome_settings_mouse_init (GConfEngine *engine)
|
|||
void
|
||||
gnome_settings_mouse_load (GConfEngine *engine)
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -26,6 +26,9 @@ translate_int_int (TranslationEntry *trans,
|
|||
{
|
||||
g_assert (value->type == trans->gconf_type);
|
||||
|
||||
g_print ("setting %s %d\n",
|
||||
trans->xsetting_name,
|
||||
gconf_value_get_int (value));
|
||||
xsettings_manager_set_int (manager, trans->xsetting_name,
|
||||
gconf_value_get_int (value));
|
||||
}
|
||||
|
@ -36,13 +39,16 @@ translate_string_string (TranslationEntry *trans,
|
|||
{
|
||||
g_assert (value->type == trans->gconf_type);
|
||||
|
||||
g_print ("setting %s %s\n",
|
||||
trans->xsetting_name,
|
||||
gconf_value_get_string (value));
|
||||
xsettings_manager_set_string (manager,
|
||||
trans->xsetting_name,
|
||||
gconf_value_get_string (value));
|
||||
}
|
||||
|
||||
static TranslationEntry translations [] = {
|
||||
{ "/desktop/gnome/double-click-time", "Net/DoubleClickTime", GCONF_VALUE_INT,
|
||||
{ "/desktop/gnome/peripherals/mouse/double_click", "Net/DoubleClickTime", GCONF_VALUE_INT,
|
||||
translate_int_int },
|
||||
{ "/desktop/gnome/gtk-color-palette", "Gtk/ColorPalette", GCONF_VALUE_STRING,
|
||||
translate_string_string },
|
||||
|
@ -135,6 +141,7 @@ xsettings_callback (GConfEntry *entry)
|
|||
TranslationEntry *trans;
|
||||
trans = find_translation_entry (entry->key);
|
||||
|
||||
g_print ("daemon: notified on %s\n", entry->key);
|
||||
if (trans == NULL)
|
||||
return;
|
||||
|
||||
|
@ -146,7 +153,7 @@ xsettings_callback (GConfEntry *entry)
|
|||
void
|
||||
gnome_settings_xsettings_init (GConfEngine *engine)
|
||||
{
|
||||
gnome_settings_daemon_register_callback ("/desktop/standard", xsettings_callback);
|
||||
gnome_settings_daemon_register_callback ("/desktop/gnome/peripherals/mouse", xsettings_callback);
|
||||
gnome_settings_daemon_register_callback ("/desktop/gtk", xsettings_callback);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue