diff options
author | Tim Janik <timj@gtk.org> | 1998-08-18 03:59:41 +0000 |
---|---|---|
committer | Tim Janik <timj@src.gnome.org> | 1998-08-18 03:59:41 +0000 |
commit | 7f2909bbab8294c98338ee5512db520c48ced929 (patch) | |
tree | 86bc09d36566944710fc7dd6c1ea5e2cbd59ede9 /gdk | |
parent | fdc36ada3f64bb1e9f2afa4c4cfe6c4a56565109 (diff) | |
download | gtk+-7f2909bbab8294c98338ee5512db520c48ced929.tar.gz |
restricted the --g*fatal-* arguments to --g-fatal-warnings again. this
Tue Aug 18 03:54:43 1998 Tim Janik <timj@gtk.org>
* gtk/gtkmain.c (gtk_init): restricted the --g*fatal-* arguments
to --g-fatal-warnings again. this option now causes log levels of
WARNING and CRITICAL to abort().
* gdk/gdk.c:
* gdk/gdkdnd.c:
* gdk/gdkcc.c:
* gdk/gdkfont.c:
* gdk/gdkwindow.c:
* gdk/gdkvisual.c:
* gtk/gtkwidget.c:
* gtk/gtktypeutils.c:
* gtk/gtktree.c:
* gtk/gtkfontsel.c:
* gtk/gtkmain.c:
* gtk/gtkobject.c:
* gtk/gtkpreview.c:
* gtk/gtkselection.c:
* gtk/gtktext.c:
* gtk/gtktree.c:
* gtk/gtktreeitem.c:
did a global search&replace to substitute g_print() calls with
g_message(). libraries shouldn't use printf(), g_print() or
g_printerr() at all.
a bunch of the replacements should probably be wrapped into the
G{D|T}K_NOTE() macros, so they are special cased for debugging
purposes in a sane way, avoiding all the nasty #ifdef DEBUG_MY_TEDDY
things.
* gdk/gdkrgb.c: left this out currently.
* gdk/gdkdnd.c: added copyright notice.
Diffstat (limited to 'gdk')
-rw-r--r-- | gdk/gdk.c | 1686 | ||||
-rw-r--r-- | gdk/gdkcc.c | 954 | ||||
-rw-r--r-- | gdk/gdkdnd.c | 44 | ||||
-rw-r--r-- | gdk/gdkfont.c | 4 | ||||
-rw-r--r-- | gdk/gdkvisual.c | 6 | ||||
-rw-r--r-- | gdk/gdkwindow.c | 9 | ||||
-rw-r--r-- | gdk/x11/gdkcc-x11.c | 954 | ||||
-rw-r--r-- | gdk/x11/gdkdnd-x11.c | 44 | ||||
-rw-r--r-- | gdk/x11/gdkfont-x11.c | 4 | ||||
-rw-r--r-- | gdk/x11/gdkmain-x11.c | 1686 | ||||
-rw-r--r-- | gdk/x11/gdkvisual-x11.c | 6 | ||||
-rw-r--r-- | gdk/x11/gdkwindow-x11.c | 9 |
12 files changed, 2720 insertions, 2686 deletions
@@ -8,7 +8,7 @@ * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public @@ -68,7 +68,7 @@ # define SELECT_MASK fd_set #else # ifndef _AIX - typedef long fd_mask; +typedef long fd_mask; # endif # if defined(_IBMR2) # define SELECT_MASK void @@ -101,120 +101,120 @@ struct _GdkPredicate * Private function declarations */ -static GdkEvent *gdk_event_new (void); -static gint gdk_event_wait (void); -static gint gdk_event_apply_filters (XEvent *xevent, +static GdkEvent *gdk_event_new (void); +static gint gdk_event_wait (void); +static gint gdk_event_apply_filters (XEvent *xevent, GdkEvent *event, GList *filters); -static gint gdk_event_translate (GdkEvent *event, - XEvent *xevent); +static gint gdk_event_translate (GdkEvent *event, + XEvent *xevent); #if 0 -static Bool gdk_event_get_type (Display *display, - XEvent *xevent, +static Bool gdk_event_get_type (Display *display, + XEvent *xevent, XPointer arg); #endif -static void gdk_synthesize_click (GdkEvent *event, - gint nclicks); +static void gdk_synthesize_click (GdkEvent *event, + gint nclicks); -static void gdk_dnd_drag_begin (GdkWindow *initial_window); -static void gdk_dnd_drag_enter (Window dest); -static void gdk_dnd_drag_leave (Window dest); -static void gdk_dnd_drag_end (Window dest, +static void gdk_dnd_drag_begin (GdkWindow *initial_window); +static void gdk_dnd_drag_enter (Window dest); +static void gdk_dnd_drag_leave (Window dest); +static void gdk_dnd_drag_end (Window dest, GdkPoint coords); -static GdkAtom gdk_dnd_check_types (GdkWindow *window, - XEvent *xevent); +static GdkAtom gdk_dnd_check_types (GdkWindow *window, + XEvent *xevent); #ifdef DEBUG_DND -static void gdk_print_atom (GdkAtom anatom); +static void gdk_print_atom (GdkAtom anatom); #endif #ifndef HAVE_XCONVERTCASE -static void gdkx_XConvertCase (KeySym symbol, - KeySym *lower, - KeySym *upper); +static void gdkx_XConvertCase (KeySym symbol, + KeySym *lower, + KeySym *upper); #define XConvertCase gdkx_XConvertCase #endif /* * old junk from offix, we might use it though so leave it */ -Window gdk_get_client_window (Display *dpy, - Window win); +Window gdk_get_client_window (Display *dpy, + Window win); #ifdef WE_HAVE_MOTIF_DROPS_DONE -static GdkWindow * gdk_drop_get_real_window (GdkWindow *w, +static GdkWindow * gdk_drop_get_real_window (GdkWindow *w, guint16 *x, guint16 *y); #endif -static void gdk_exit_func (void); -static int gdk_x_error (Display *display, +static void gdk_exit_func (void); +static int gdk_x_error (Display *display, XErrorEvent *error); -static int gdk_x_io_error (Display *display); -static RETSIGTYPE gdk_signal (int signum); +static int gdk_x_io_error (Display *display); +static RETSIGTYPE gdk_signal (int signum); #ifdef USE_XIM -static guint gdk_im_va_count (va_list list); +static guint gdk_im_va_count (va_list list); static XVaNestedList gdk_im_va_to_nested (va_list list, - guint count); + guint count); static GdkIM gdk_im_get (void); static gint gdk_im_open (XrmDatabase db, gchar* res_name, gchar* rec_class); static void gdk_im_close (void); -static void gdk_ic_cleanup (void); +static void gdk_ic_cleanup (void); #endif /* USE_XIM */ /* Private variable declarations */ -static int gdk_initialized = 0; /* 1 if the library is initialized, +static int gdk_initialized = 0; /* 1 if the library is initialized, * 0 otherwise. */ -static int connection_number = 0; /* The file descriptor number of our - * connection to the X server. This - * is used so that we may determine - * when events are pending by using - * the "select" system call. +static int connection_number = 0; /* The file descriptor number of our + * connection to the X server. This + * is used so that we may determine + * when events are pending by using + * the "select" system call. */ -static struct timeval start; /* The time at which the library was - * last initialized. +static struct timeval start; /* The time at which the library was + * last initialized. */ -static struct timeval timer; /* Timeout interval to use in the call - * to "select". This is used in - * conjunction with "timerp" to create - * a maximum time to wait for an event - * to arrive. +static struct timeval timer; /* Timeout interval to use in the call + * to "select". This is used in + * conjunction with "timerp" to create + * a maximum time to wait for an event + * to arrive. */ -static struct timeval *timerp; /* The actual timer passed to "select" - * This may be NULL, in which case - * "select" will block until an event - * arrives. +static struct timeval *timerp; /* The actual timer passed to "select" + * This may be NULL, in which case + * "select" will block until an event + * arrives. */ -static guint32 timer_val; /* The timeout length as specified by - * the user in milliseconds. +static guint32 timer_val; /* The timeout length as specified by + * the user in milliseconds. */ -static GList *inputs; /* A list of the input file descriptors - * that we care about. Each list node - * contains a GdkInput struct that describes - * when we are interested in the specified - * file descriptor. That is, when it is - * available for read, write or has an - * exception pending. +static GList *inputs; /* A list of the input file descriptors + * that we care about. Each list node + * contains a GdkInput struct that describes + * when we are interested in the specified + * file descriptor. That is, when it is + * available for read, write or has an + * exception pending. */ -static guint32 button_click_time[2]; /* The last 2 button click times. Used - * to determine if the latest button click - * is part of a double or triple click. +static guint32 button_click_time[2]; /* The last 2 button click times. Used + * to determine if the latest button click + * is part of a double or triple click. */ -static GdkWindow *button_window[2]; /* The last 2 windows to receive button presses. - * Also used to determine if the latest button - * click is part of a double or triple click. +static GdkWindow *button_window[2]; /* The last 2 windows to receive button presses. + * Also used to determine if the latest button + * click is part of a double or triple click. */ -static guint button_number[2]; /* The last 2 buttons to be pressed. +static guint button_number[2]; /* The last 2 buttons to be pressed. */ static GdkWindowPrivate *xgrab_window = NULL; /* Window that currently holds the - * x pointer grab + * x pointer grab */ #ifdef USE_XIM @@ -235,11 +235,11 @@ static gint autorepeat; #ifdef G_ENABLE_DEBUG static GDebugKey gdk_debug_keys[] = { - {"events", GDK_DEBUG_EVENTS}, - {"misc", GDK_DEBUG_MISC}, - {"dnd", GDK_DEBUG_DND}, + {"events", GDK_DEBUG_EVENTS}, + {"misc", GDK_DEBUG_MISC}, + {"dnd", GDK_DEBUG_DND}, {"color-context", GDK_DEBUG_COLOR_CONTEXT}, - {"xim", GDK_DEBUG_XIM} + {"xim", GDK_DEBUG_XIM} }; static const int gdk_ndebug_keys = sizeof(gdk_debug_keys)/sizeof(GDebugKey); @@ -268,7 +268,7 @@ static const int gdk_ndebug_keys = sizeof(gdk_debug_keys)/sizeof(GDebugKey); */ void -gdk_init (int *argc, +gdk_init (int *argc, char ***argv) { XKeyboardState keyboard_state; @@ -277,10 +277,10 @@ gdk_init (int *argc, XClassHint *class_hint; gchar **argv_orig = NULL; gint argc_orig = 0; - + if (gdk_initialized) return; - + if (argc && argv) { argc_orig = *argc; @@ -290,9 +290,9 @@ gdk_init (int *argc, argv_orig[i] = g_strdup ((*argv)[i]); argv_orig[argc_orig] = NULL; } - + X_GETTIMEOFDAY (&start); - + #ifndef I_NEED_TO_ACTUALLY_DEBUG_MY_PROGRAMS signal (SIGHUP, gdk_signal); signal (SIGINT, gdk_signal); @@ -302,14 +302,14 @@ gdk_init (int *argc, signal (SIGPIPE, gdk_signal); signal (SIGTERM, gdk_signal); #endif - + gdk_display_name = NULL; - + XSetErrorHandler (gdk_x_error); XSetIOErrorHandler (gdk_x_io_error); - + synchronize = FALSE; - + #ifdef G_ENABLE_DEBUG { gchar *debug_string = getenv("GDK_DEBUG"); @@ -319,20 +319,20 @@ gdk_init (int *argc, gdk_ndebug_keys); } #endif /* G_ENABLE_DEBUG */ - + if (argc && argv) { if (*argc > 0) { gchar *d; - + d = strrchr((*argv)[0],'/'); if (d != NULL) gdk_progname = g_strdup (d + 1); else gdk_progname = g_strdup ((*argv)[0]); } - + for (i = 1; i < *argc;) { #ifdef G_ENABLE_DEBUG @@ -361,7 +361,7 @@ gdk_init (int *argc, (strncmp ("--gdk-no-debug=", (*argv)[i], 15) == 0)) { gchar *equal_pos = strchr ((*argv)[i], '='); - + if (equal_pos != NULL) { gdk_debug_flags &= ~g_parse_debug_string (equal_pos+1, @@ -381,108 +381,108 @@ gdk_init (int *argc, else #endif /* G_ENABLE_DEBUG */ if (strcmp ("--display", (*argv)[i]) == 0) - { - (*argv)[i] = NULL; - - if ((i + 1) < *argc && (*argv)[i + 1]) - { - gdk_display_name = g_strdup ((*argv)[i + 1]); - (*argv)[i + 1] = NULL; - i += 1; - } - } - else if (strcmp ("--sync", (*argv)[i]) == 0) - { - (*argv)[i] = NULL; - synchronize = TRUE; - } - else if (strcmp ("--no-xshm", (*argv)[i]) == 0) - { - (*argv)[i] = NULL; - gdk_use_xshm = FALSE; - } - else if (strcmp ("--name", (*argv)[i]) == 0) - { - if ((i + 1) < *argc && (*argv)[i + 1]) - { - (*argv)[i++] = NULL; - gdk_progname = (*argv)[i]; - (*argv)[i] = NULL; - } - } - else if (strcmp ("--class", (*argv)[i]) == 0) - { - if ((i + 1) < *argc && (*argv)[i + 1]) - { - (*argv)[i++] = NULL; - gdk_progclass = (*argv)[i]; - (*argv)[i] = NULL; - } - } + { + (*argv)[i] = NULL; + + if ((i + 1) < *argc && (*argv)[i + 1]) + { + gdk_display_name = g_strdup ((*argv)[i + 1]); + (*argv)[i + 1] = NULL; + i += 1; + } + } + else if (strcmp ("--sync", (*argv)[i]) == 0) + { + (*argv)[i] = NULL; + synchronize = TRUE; + } + else if (strcmp ("--no-xshm", (*argv)[i]) == 0) + { + (*argv)[i] = NULL; + gdk_use_xshm = FALSE; + } + else if (strcmp ("--name", (*argv)[i]) == 0) + { + if ((i + 1) < *argc && (*argv)[i + 1]) + { + (*argv)[i++] = NULL; + gdk_progname = (*argv)[i]; + (*argv)[i] = NULL; + } + } + else if (strcmp ("--class", (*argv)[i]) == 0) + { + if ((i + 1) < *argc && (*argv)[i + 1]) + { + (*argv)[i++] = NULL; + gdk_progclass = (*argv)[i]; + (*argv)[i] = NULL; + } + } #ifdef XINPUT_GXI - else if (strcmp ("--gxid_host", (*argv)[i]) == 0) - { - if ((i + 1) < *argc && (*argv)[i + 1]) - { - (*argv)[i++] = NULL; - gdk_input_gxid_host = ((*argv)[i]); - (*argv)[i] = NULL; - } - } - else if (strcmp ("--gxid_port", (*argv)[i]) == 0) - { - if ((i + 1) < *argc && (*argv)[i + 1]) - { - (*argv)[i++] = NULL; - gdk_input_gxid_port = atoi ((*argv)[i]); - (*argv)[i] = NULL; - } - } + else if (strcmp ("--gxid_host", (*argv)[i]) == 0) + { + if ((i + 1) < *argc && (*argv)[i + 1]) + { + (*argv)[i++] = NULL; + gdk_input_gxid_host = ((*argv)[i]); + (*argv)[i] = NULL; + } + } + else if (strcmp ("--gxid_port", (*argv)[i]) == 0) + { + if ((i + 1) < *argc && (*argv)[i + 1]) + { + (*argv)[i++] = NULL; + gdk_input_gxid_port = atoi ((*argv)[i]); + (*argv)[i] = NULL; + } + } #endif #ifdef USE_XIM - else if (strcmp ("--xim-preedit", (*argv)[i]) == 0) - { - if ((i + 1) < *argc && (*argv)[i + 1]) - { - (*argv)[i++] = NULL; - if (strcmp ("none", (*argv)[i]) == 0) - gdk_im_set_best_style (GdkIMPreeditNone); - else if (strcmp ("nothing", (*argv)[i]) == 0) - gdk_im_set_best_style (GdkIMPreeditNothing); - else if (strcmp ("area", (*argv)[i]) == 0) - gdk_im_set_best_style (GdkIMPreeditArea); - else if (strcmp ("position", (*argv)[i]) == 0) - gdk_im_set_best_style (GdkIMPreeditPosition); - else if (strcmp ("callbacks", (*argv)[i]) == 0) - gdk_im_set_best_style (GdkIMPreeditCallbacks); - } - } - else if (strcmp ("--xim-status", (*argv)[i]) == 0) - { - if ((i + 1) < *argc && (*argv)[i + 1]) - { - (*argv)[i++] = NULL; - if (strcmp ("none", (*argv)[i]) == 0) - gdk_im_set_best_style (GdkIMStatusNone); - else if (strcmp ("nothing", (*argv)[i]) == 0) - gdk_im_set_best_style (GdkIMStatusNothing); - else if (strcmp ("area", (*argv)[i]) == 0) - gdk_im_set_best_style (GdkIMStatusArea); - else if (strcmp ("callbacks", (*argv)[i]) == 0) - gdk_im_set_best_style (GdkIMStatusCallbacks); - } - } + else if (strcmp ("--xim-preedit", (*argv)[i]) == 0) + { + if ((i + 1) < *argc && (*argv)[i + 1]) + { + (*argv)[i++] = NULL; + if (strcmp ("none", (*argv)[i]) == 0) + gdk_im_set_best_style (GdkIMPreeditNone); + else if (strcmp ("nothing", (*argv)[i]) == 0) + gdk_im_set_best_style (GdkIMPreeditNothing); + else if (strcmp ("area", (*argv)[i]) == 0) + gdk_im_set_best_style (GdkIMPreeditArea); + else if (strcmp ("position", (*argv)[i]) == 0) + gdk_im_set_best_style (GdkIMPreeditPosition); + else if (strcmp ("callbacks", (*argv)[i]) == 0) + gdk_im_set_best_style (GdkIMPreeditCallbacks); + } + } + else if (strcmp ("--xim-status", (*argv)[i]) == 0) + { + if ((i + 1) < *argc && (*argv)[i + 1]) + { + (*argv)[i++] = NULL; + if (strcmp ("none", (*argv)[i]) == 0) + gdk_im_set_best_style (GdkIMStatusNone); + else if (strcmp ("nothing", (*argv)[i]) == 0) + gdk_im_set_best_style (GdkIMStatusNothing); + else if (strcmp ("area", (*argv)[i]) == 0) + gdk_im_set_best_style (GdkIMStatusArea); + else if (strcmp ("callbacks", (*argv)[i]) == 0) + gdk_im_set_best_style (GdkIMStatusCallbacks); + } + } #endif - + i += 1; } - + for (i = 1; i < *argc; i++) { for (k = i; k < *argc; k++) if ((*argv)[k] != NULL) break; - + if (k > i) { k -= i; @@ -496,34 +496,34 @@ gdk_init (int *argc, { gdk_progname = "<unknown>"; } - - GDK_NOTE (MISC, g_print ("Gdk: progname: \"%s\"\n", gdk_progname)); - + + GDK_NOTE (MISC, g_message ("progname: \"%s\"", gdk_progname)); + gdk_display = XOpenDisplay (gdk_display_name); if (!gdk_display) { g_warning ("cannot open display: %s", XDisplayName (gdk_display_name)); exit(1); } - + /* This is really crappy. We have to look into the display structure * to find the base resource id. This is only needed for recording * and playback of events. */ /* base_id = RESOURCE_BASE; */ base_id = 0; - GDK_NOTE (EVENTS, g_print ("base id: %lu\n", base_id)); - + GDK_NOTE (EVENTS, g_message ("base id: %lu", base_id)); + connection_number = ConnectionNumber (gdk_display); GDK_NOTE (MISC, - g_print ("Gdk: connection number: %d\n", connection_number)); - + g_message ("connection number: %d", connection_number)); + if (synchronize) XSynchronize (gdk_display, True); - + gdk_screen = DefaultScreen (gdk_display); gdk_root_window = RootWindow (gdk_display, gdk_screen); - + gdk_leader_window = XCreateSimpleWindow(gdk_display, gdk_root_window, 10, 10, 10, 10, 0, 0 , 0); class_hint = XAllocClassHint(); @@ -548,7 +548,7 @@ gdk_init (int *argc, gdk_wm_window_protocols[0] = gdk_wm_delete_window; gdk_wm_window_protocols[1] = gdk_wm_take_focus; gdk_selection_property = XInternAtom (gdk_display, "GDK_SELECTION", False); - + gdk_dnd.gdk_XdeEnter = gdk_atom_intern("_XDE_ENTER", FALSE); gdk_dnd.gdk_XdeLeave = gdk_atom_intern("_XDE_LEAVE", FALSE); gdk_dnd.gdk_XdeRequest = gdk_atom_intern("_XDE_REQUEST", FALSE); @@ -556,29 +556,29 @@ gdk_init (int *argc, gdk_dnd.gdk_XdeTypelist = gdk_atom_intern("_XDE_TYPELIST", FALSE); gdk_dnd.c->gdk_cursor_dragdefault = XCreateFontCursor(gdk_display, XC_bogosity); gdk_dnd.c->gdk_cursor_dragok = XCreateFontCursor(gdk_display, XC_heart); - + XGetKeyboardControl (gdk_display, &keyboard_state); autorepeat = keyboard_state.global_auto_repeat; - + timer.tv_sec = 0; timer.tv_usec = 0; timerp = NULL; - + button_click_time[0] = 0; button_click_time[1] = 0; button_window[0] = NULL; button_window[1] = NULL; button_number[0] = -1; button_number[1] = -1; - + if (ATEXIT (gdk_exit_func)) g_warning ("unable to register exit function"); - + gdk_visual_init (); gdk_window_init (); gdk_image_init (); gdk_input_init (); - + #ifdef USE_XIM /* initialize XIM Protocol variables */ xim_using = FALSE; @@ -590,10 +590,10 @@ gdk_init (int *argc, gdk_im_set_best_style (GdkIMStatusCallbacks); xim_ic = NULL; xim_window = (GdkWindow*)NULL; - + gdk_im_open (NULL, NULL, NULL); #endif - + gdk_initialized = 1; } @@ -619,9 +619,9 @@ gdk_init (int *argc, void gdk_exit (int errorcode) { - /* de-initialisation is done by the gdk_exit_funct(), - no need to do this here (Alex J.) */ - exit (errorcode); + /* de-initialisation is done by the gdk_exit_funct(), + no need to do this here (Alex J.) */ + exit (errorcode); } /* @@ -641,19 +641,19 @@ gchar* gdk_set_locale (void) { if (!setlocale (LC_ALL,"")) - g_print ("locale not supported by C library\n"); - + g_message ("locale not supported by C library"); + if (!XSupportsLocale ()) { - g_print ("locale not supported by Xlib, locale set to C\n"); + g_message ("locale not supported by Xlib, locale set to C"); setlocale (LC_ALL, "C"); } - + if (!XSetLocaleModifiers ("")) { - g_print ("can not set locale modifiers\n"); + g_message ("can not set locale modifiers"); } - + return setlocale (LC_ALL,NULL); } @@ -680,9 +680,9 @@ gdk_events_pending (void) { gint result; GList *tmp_list; - + result = XPending (gdk_display); - + tmp_list = putback_events; while (tmp_list) { @@ -717,7 +717,7 @@ graphics_expose_predicate (Display *display, GdkWindowPrivate *private = (GdkWindowPrivate *)arg; g_return_val_if_fail (private != NULL, False); - + if ((xevent->xany.window == private->xwindow) && ((xevent->xany.type == GraphicsExpose) || (xevent->xany.type == NoExpose))) @@ -733,20 +733,20 @@ gdk_event_get_graphics_expose (GdkWindow *window) GdkEvent *event; g_return_val_if_fail (window != NULL, NULL); - + XIfEvent (gdk_display, &xevent, graphics_expose_predicate, (XPointer)window); - + if (xevent.xany.type == GraphicsExpose) { event = gdk_event_new (); - + if (gdk_event_translate (event, &xevent)) return event; else gdk_event_free (event); } - return NULL; + return NULL; } /* @@ -775,7 +775,7 @@ gdk_event_get (void) GdkEvent *event; GList *temp_list; XEvent xevent; - + #if 0 if (pred) { @@ -783,7 +783,7 @@ gdk_event_get (void) while (temp_list) { temp_event = temp_list->data; - + if ((* pred) (temp_event, data)) { if (event) @@ -792,29 +792,29 @@ gdk_event_get (void) g_list_free (temp_list); return TRUE; } - + temp_list = temp_list->next; } - + event_pred.func = pred; event_pred.data = data; - + if (XCheckIfEvent (gdk_display, &xevent, gdk_event_get_type, (XPointer) & event_pred)) if (event) return gdk_event_translate (event, &xevent); } else #endif - if (putback_events) - { - event = putback_events->data; - - temp_list = putback_events; - putback_events = g_list_remove_link (putback_events, temp_list); - g_list_free_1 (temp_list); - - return event; - } + if (putback_events) + { + event = putback_events->data; + + temp_list = putback_events; + putback_events = g_list_remove_link (putback_events, temp_list); + g_list_free_1 (temp_list); + + return event; + } /* Wait for an event to occur or the timeout to elapse. * If an event occurs "gdk_event_wait" will return TRUE. @@ -841,7 +841,7 @@ gdk_event_get (void) XNextEvent (gdk_display, &xevent); #endif event = gdk_event_new (); - + event->any.type = GDK_NOTHING; event->any.window = NULL; event->any.send_event = FALSE; @@ -852,7 +852,7 @@ gdk_event_get (void) else gdk_event_free (event); } - + return NULL; } @@ -860,11 +860,11 @@ void gdk_event_put (GdkEvent *event) { GdkEvent *new_event; - + g_return_if_fail (event != NULL); - + new_event = gdk_event_copy (event); - + putback_events = g_list_prepend (putback_events, new_event); } @@ -898,9 +898,9 @@ gdk_event_new (void) sizeof (GdkEvent), 4096, G_ALLOC_AND_FREE); - + new_event = g_chunk_new (GdkEvent, event_chunk); - + return new_event; } @@ -910,25 +910,25 @@ gdk_event_copy (GdkEvent *event) GdkEvent *new_event; g_return_val_if_fail (event != NULL, NULL); - + new_event = gdk_event_new (); - + *new_event = *event; gdk_window_ref (new_event->any.window); - + switch (event->any.type) { case GDK_KEY_PRESS: case GDK_KEY_RELEASE: new_event->key.string = g_strdup (event->key.string); break; - + case GDK_ENTER_NOTIFY: case GDK_LEAVE_NOTIFY: if (event->crossing.subwindow != NULL) gdk_window_ref (event->crossing.subwindow); break; - + case GDK_DROP_DATA_AVAIL: new_event->dropdataavailable.data_type = g_strdup (event->dropdataavailable.data_type); new_event->dropdataavailable.data = g_malloc (event->dropdataavailable.data_numbytes); @@ -936,11 +936,11 @@ gdk_event_copy (GdkEvent *event) event->dropdataavailable.data, event->dropdataavailable.data_numbytes); break; - + default: break; } - + return new_event; } @@ -967,36 +967,36 @@ gdk_event_free (GdkEvent *event) { g_assert (event_chunk != NULL); g_return_if_fail (event != NULL); - + if (event->any.window) gdk_window_unref (event->any.window); - + switch (event->any.type) { case GDK_KEY_PRESS: case GDK_KEY_RELEASE: g_free (event->key.string); break; - + case GDK_ENTER_NOTIFY: case GDK_LEAVE_NOTIFY: if (event->crossing.subwindow != NULL) gdk_window_unref (event->crossing.subwindow); break; - + case GDK_DROP_DATA_AVAIL: g_free (event->dropdataavailable.data_type); g_free (event->dropdataavailable.data); break; - + case GDK_DRAG_REQUEST: g_free (event->dragrequest.data_type); break; - + default: break; } - + g_mem_chunk_free (event_chunk, event); } @@ -1073,9 +1073,9 @@ gdk_time_get (void) struct timeval end; struct timeval elapsed; guint32 milliseconds; - + X_GETTIMEOFDAY (&end); - + if (start.tv_usec > end.tv_usec) { end.tv_usec += 1000000; @@ -1083,9 +1083,9 @@ gdk_time_get (void) } elapsed.tv_sec = end.tv_sec - start.tv_sec; elapsed.tv_usec = end.tv_usec - start.tv_usec; - + milliseconds = (elapsed.tv_sec * 1000) + (elapsed.tv_usec / 1000); - + return milliseconds; } @@ -1138,7 +1138,7 @@ gdk_timer_set (guint32 milliseconds) timer_val = milliseconds; timer.tv_sec = milliseconds / 1000; timer.tv_usec = (milliseconds % 1000) * 1000; - + } void @@ -1154,25 +1154,25 @@ gdk_timer_disable (void) } gint -gdk_input_add_full (gint source, +gdk_input_add_full (gint source, GdkInputCondition condition, GdkInputFunction function, - gpointer data, + gpointer data, GdkDestroyNotify destroy) { static gint next_tag = 1; GList *list; GdkInput *input; gint tag; - + tag = 0; list = inputs; - + while (list) { input = list->data; list = list->next; - + if ((input->source == source) && (input->condition == condition)) { if (input->destroy) @@ -1183,7 +1183,7 @@ gdk_input_add_full (gint source, tag = input->tag; } } - + if (!tag) { input = g_new (GdkInput, 1); @@ -1194,18 +1194,18 @@ gdk_input_add_full (gint source, input->data = data; input->destroy = destroy; tag = input->tag; - + inputs = g_list_prepend (inputs, input); } - + return tag; } gint -gdk_input_add (gint source, +gdk_input_add (gint source, GdkInputCondition condition, - GdkInputFunction function, - gpointer data) + GdkInputFunction function, + gpointer data) { return gdk_input_add_interp (source, condition, function, data, NULL); } @@ -1215,23 +1215,23 @@ gdk_input_remove (gint tag) { GList *list; GdkInput *input; - + list = inputs; while (list) { input = list->data; - + if (input->tag == tag) { if (input->destroy) (input->destroy) (input->data); - - input->tag = 0; /* do not free it here */ - input->condition = 0; /* it's done in gdk_event_wait */ - + + input->tag = 0; /* do not free it here */ + input->condition = 0; /* it's done in gdk_event_wait */ + break; } - + list = list->next; } } @@ -1260,17 +1260,17 @@ gdk_input_remove (gint tag) */ gint -gdk_pointer_grab (GdkWindow * window, - gint owner_events, - GdkEventMask event_mask, - GdkWindow * confine_to, - GdkCursor * cursor, - guint32 time) +gdk_pointer_grab (GdkWindow * window, + gint owner_events, + GdkEventMask event_mask, + GdkWindow * confine_to, + GdkCursor * cursor, + guint32 time) { - /* From gdkwindow.c */ + /* From gdkwindow.c */ extern int nevent_masks; extern int event_mask_table[]; - + gint return_val; GdkWindowPrivate *window_private; GdkWindowPrivate *confine_to_private; @@ -1280,33 +1280,33 @@ gdk_pointer_grab (GdkWindow * window, Window xconfine_to; Cursor xcursor; int i; - + g_return_val_if_fail (window != NULL, 0); - + window_private = (GdkWindowPrivate*) window; confine_to_private = (GdkWindowPrivate*) confine_to; cursor_private = (GdkCursorPrivate*) cursor; - + xwindow = window_private->xwindow; - + if (!confine_to || confine_to_private->destroyed) xconfine_to = None; else xconfine_to = confine_to_private->xwindow; - + if (!cursor) xcursor = None; else xcursor = cursor_private->xcursor; - - + + xevent_mask = 0; for (i = 0; i < nevent_masks; i++) { if (event_mask & (1 << (i + 1))) xevent_mask |= event_mask_table[i]; } - + if (((GdkWindowPrivate *)window)->extension_events && gdk_input_vtable.grab_pointer) return_val = gdk_input_vtable.grab_pointer (window, @@ -1331,7 +1331,7 @@ gdk_pointer_grab (GdkWindow * window, else return_val = AlreadyGrabbed; } - + if (return_val == GrabSuccess) xgrab_window = window_private; @@ -1358,7 +1358,7 @@ gdk_pointer_ungrab (guint32 time) { if (gdk_input_vtable.ungrab_pointer) gdk_input_vtable.ungrab_pointer (time); - + XUngrabPointer (gdk_display, time); xgrab_window = NULL; } @@ -1405,18 +1405,18 @@ gdk_pointer_is_grabbed (void) */ gint -gdk_keyboard_grab (GdkWindow * window, - gint owner_events, - guint32 time) +gdk_keyboard_grab (GdkWindow * window, + gint owner_events, + guint32 time) { GdkWindowPrivate *window_private; Window xwindow; - + g_return_val_if_fail (window != NULL, 0); - + window_private = (GdkWindowPrivate*) window; xwindow = window_private->xwindow; - + if (!window_private->destroyed) return XGrabKeyboard (window_private->xdisplay, xwindow, @@ -1467,9 +1467,9 @@ gint gdk_screen_width (void) { gint return_val; - + return_val = DisplayWidth (gdk_display, gdk_screen); - + return return_val; } @@ -1492,9 +1492,9 @@ gint gdk_screen_height (void) { gint return_val; - + return_val = DisplayHeight (gdk_display, gdk_screen); - + return return_val; } @@ -1517,9 +1517,9 @@ gint gdk_screen_width_mm (void) { gint return_val; - + return_val = DisplayWidthMM (gdk_display, gdk_screen); - + return return_val; } @@ -1542,9 +1542,9 @@ gint gdk_screen_height_mm (void) { gint return_val; - + return_val = DisplayHeightMM (gdk_display, gdk_screen); - + return return_val; } @@ -1624,7 +1624,7 @@ gdk_event_wait (void) SELECT_MASK exceptfds; int max_input; int nfd; - + /* If there are no events pending we will wait for an event. * The time we wait is dependant on the "timer". If no timer * has been specified then we'll block until an event arrives. @@ -1632,21 +1632,21 @@ gdk_event_wait (void) * arrives or the timer expires. (This is all done using the * "select" system call). */ - + if (XPending (gdk_display) == 0) { FD_ZERO (&readfds); FD_ZERO (&writefds); FD_ZERO (&exceptfds); - + FD_SET (connection_number, &readfds); max_input = connection_number; - + list = inputs; while (list) { input = list->data; - + if (input->tag) { if (input->condition & GDK_INPUT_READ) @@ -1655,14 +1655,14 @@ gdk_event_wait (void) FD_SET (input->source, &writefds); if (input->condition & GDK_INPUT_EXCEPTION) FD_SET (input->source, &exceptfds); - + max_input = MAX (max_input, input->source); list = list->next; } - else /* free removed inputs */ + else /* free removed inputs */ { temp_list = list; - + if (list->next) list->next->prev = list->prev; if (list->prev) @@ -1671,28 +1671,28 @@ gdk_event_wait (void) inputs = list->next; list = list->next; - + temp_list->next = NULL; temp_list->prev = NULL; - + g_free (temp_list->data); g_list_free (temp_list); } } - + #ifdef USE_PTHREADS if (gdk_using_threads) { gdk_select_waiting = TRUE; - + FD_SET (gdk_threads_pipe[0], &readfds); max_input = MAX (max_input, gdk_threads_pipe[0]); gdk_threads_leave (); } #endif - + nfd = select (max_input+1, &readfds, &writefds, &exceptfds, timerp); - + #ifdef USE_PTHREADS if (gdk_using_threads) { @@ -1704,10 +1704,10 @@ gdk_event_wait (void) read (gdk_threads_pipe[0], &c, 1); } #endif - + timerp = NULL; timer_val = 0; - + if (nfd > 0) { if (FD_ISSET (connection_number, &readfds)) @@ -1724,13 +1724,13 @@ gdk_event_wait (void) else return TRUE; } - + list = inputs; while (list) { input = list->data; list = list->next; - + condition = 0; if (FD_ISSET (input->source, &readfds)) condition |= GDK_INPUT_READ; @@ -1738,7 +1738,7 @@ gdk_event_wait (void) condition |= GDK_INPUT_WRITE; if (FD_ISSET (input->source, &exceptfds)) condition |= GDK_INPUT_EXCEPTION; - + if (condition && input->function) (* input->function) (input->data, input->source, condition); } @@ -1746,7 +1746,7 @@ gdk_event_wait (void) } else return TRUE; - + return FALSE; } @@ -1758,20 +1758,20 @@ gdk_event_apply_filters (XEvent *xevent, GdkEventFilter *filter; GList *tmp_list; GdkFilterReturn result; - + tmp_list = filters; while (tmp_list) { filter = (GdkEventFilter *)tmp_list->data; - + result = (*filter->function)(xevent, event, filter->data); if (result != GDK_FILTER_CONTINUE) return result; - + tmp_list = tmp_list->next; } - + return GDK_FILTER_CONTINUE; } @@ -1779,7 +1779,7 @@ static gint gdk_event_translate (GdkEvent *event, XEvent *xevent) { - + GdkWindow *window; GdkWindowPrivate *window_private; static XComposeStatus compose; @@ -1792,13 +1792,13 @@ gdk_event_translate (GdkEvent *event, char buf[16]; #endif gint return_val; - + return_val = FALSE; - + /* We need to play catch-up with the dnd motion events */ if(gdk_dnd.drag_really && xevent->type == MotionNotify) - while (XCheckTypedEvent(xevent->xany.display,MotionNotify,xevent)); - + while (XCheckTypedEvent(xevent->xany.display,MotionNotify,xevent)); + /* Find the GdkWindow that this event occurred in. * All events occur in some GdkWindow (otherwise, why * would we be receiving them). It really is an error @@ -1807,30 +1807,30 @@ gdk_event_translate (GdkEvent *event, * specially - they are generated by XFree86's XInput under * some circumstances. */ - + if ((xevent->xany.window == None) && gdk_input_vtable.window_none_event) { return_val = gdk_input_vtable.window_none_event (event,xevent); - + if (return_val >= 0) /* was handled */ return return_val; else return_val = FALSE; } - + window = gdk_window_lookup (xevent->xany.window); window_private = (GdkWindowPrivate *) window; - + if (window != NULL) gdk_window_ref (window); else if(gdk_null_window_warnings) /* Special purpose programs that get events for other windows may want to disable this */ g_warning ("%#lx -> NULL\n", xevent->xany.window); - + /* Check for filters for this window */ - + { GdkFilterReturn result; result = gdk_event_apply_filters (xevent, event, @@ -1843,7 +1843,7 @@ gdk_event_translate (GdkEvent *event, return (result == GDK_FILTER_TRANSLATE) ? TRUE : FALSE; } } - + /* We do a "manual" conversion of the XEvent to a * GdkEvent. The structures are mostly the same so * the conversion is fairly straightforward. We also @@ -1861,12 +1861,12 @@ gdk_event_translate (GdkEvent *event, */ #ifdef USE_XIM if (buf_len == 0) - { + { buf_len = 128; buf = g_new (gchar, buf_len); } keysym = GDK_VoidSymbol; - + if (xim_using == TRUE && xim_ic) { Status status; @@ -1876,15 +1876,15 @@ gdk_event_translate (GdkEvent *event, &xevent->xkey, buf, buf_len-1, &keysym, &status); if (status == XBufferOverflow) - { /* retry */ + { /* retry */ /* alloc adequate size of buffer */ GDK_NOTE (XIM, - g_print("XIM: overflow (required %i)\n", charcount)); - + g_message("XIM: overflow (required %i)", charcount)); + while (buf_len <= charcount) buf_len *= 2; buf = (gchar *) g_realloc (buf, buf_len); - + charcount = XmbLookupString (xim_ic->xic, &xevent->xkey, buf, buf_len-1, &keysym, &status); @@ -1903,41 +1903,41 @@ gdk_event_translate (GdkEvent *event, &keysym, &compose); #endif event->key.keyval = keysym; - + if (charcount > 0 && buf[charcount-1] == '\0') charcount --; else buf[charcount] = '\0'; - + /* Print debugging info. */ #ifdef G_ENABLE_DEBUG if (gdk_debug_flags & GDK_DEBUG_EVENTS) { - g_print ("key press:\twindow: %ld key: %12s %d\n", - xevent->xkey.window - base_id, - event->key.keyval ? XKeysymToString (event->key.keyval) : "(none)", - event->key.keyval); + g_message ("key press:\twindow: %ld key: %12s %d", + xevent->xkey.window - base_id, + event->key.keyval ? XKeysymToString (event->key.keyval) : "(none)", + event->key.keyval); if (charcount > 0) - g_print ("\t\tlength: %4d string: \"%s\"\n", - charcount, buf); + g_message ("\t\tlength: %4d string: \"%s\"", + charcount, buf); } #endif /* G_ENABLE_DEBUG */ - + event->key.type = GDK_KEY_PRESS; event->key.window = window; event->key.time = xevent->xkey.time; event->key.state = (GdkModifierType) xevent->xkey.state; event->key.string = g_strdup (buf); event->key.length = charcount; - + return_val = window_private && !window_private->destroyed; if (!return_val) g_free (event->key.string); break; - + case KeyRelease: /* Lookup the string corresponding to the given keysym. */ @@ -1945,40 +1945,40 @@ gdk_event_translate (GdkEvent *event, charcount = XLookupString (&xevent->xkey, buf, 16, &keysym, &compose); event->key.keyval = keysym; - + /* Print debugging info. */ GDK_NOTE (EVENTS, - g_print ("key release:\t\twindow: %ld key: %12s %d\n", - xevent->xkey.window - base_id, - XKeysymToString (event->key.keyval), - event->key.keyval)); - + g_message ("key release:\t\twindow: %ld key: %12s %d", + xevent->xkey.window - base_id, + XKeysymToString (event->key.keyval), + event->key.keyval)); + event->key.type = GDK_KEY_RELEASE; event->key.window = window; event->key.time = xevent->xkey.time; event->key.state = (GdkModifierType) xevent->xkey.state; event->key.length = 0; event->key.string = NULL; - + return_val = window_private && !window_private->destroyed; break; - + case ButtonPress: /* Print debugging info. */ GDK_NOTE (EVENTS, - g_print ("button press[%d]:\t\twindow: %ld x,y: %d %d button: %d\n", - window_private?window_private->dnd_drag_enabled:0, - xevent->xbutton.window - base_id, - xevent->xbutton.x, xevent->xbutton.y, - xevent->xbutton.button)); - + g_message ("button press[%d]:\t\twindow: %ld x,y: %d %d button: %d", + window_private?window_private->dnd_drag_enabled:0, + xevent->xbutton.window - base_id, + xevent->xbutton.x, xevent->xbutton.y, + xevent->xbutton.button)); + if (window_private && (window_private->extension_events != 0) && gdk_input_ignore_core) break; - + event->button.type = GDK_BUTTON_PRESS; event->button.window = window; event->button.time = xevent->xbutton.time; @@ -1993,13 +1993,13 @@ gdk_event_translate (GdkEvent *event, event->button.button = xevent->xbutton.button; event->button.source = GDK_SOURCE_MOUSE; event->button.deviceid = GDK_CORE_POINTER; - + if ((event->button.time < (button_click_time[1] + TRIPLE_CLICK_TIME)) && (event->button.window == button_window[1]) && (event->button.button == button_number[1])) { gdk_synthesize_click (event, 3); - + button_click_time[1] = 0; button_click_time[0] = 0; button_window[1] = NULL; @@ -2012,7 +2012,7 @@ gdk_event_translate (GdkEvent *event, (event->button.button == button_number[0])) { gdk_synthesize_click (event, 2); - + button_click_time[1] = button_click_time[0]; button_click_time[0] = event->button.time; button_window[1] = button_window[0]; @@ -2047,13 +2047,13 @@ gdk_event_translate (GdkEvent *event, } gdk_dnd.drag_numwindows = gdk_dnd.drag_really = 0; gdk_dnd.dnd_grabbed = FALSE; - + { /* Set motion mask for first DnD'd window, since it will be the one that is actually dragged */ XWindowAttributes dnd_winattr; XSetWindowAttributes dnd_setwinattr; - + /* We need to get motion events while the button is down, so we can know whether to really start dragging or not... */ XGetWindowAttributes(gdk_display, (Window)window_private->xwindow, @@ -2062,29 +2062,29 @@ gdk_event_translate (GdkEvent *event, window_private->dnd_drag_savedeventmask = dnd_winattr.your_event_mask; dnd_setwinattr.event_mask = window_private->dnd_drag_eventmask = ButtonMotionMask | ButtonPressMask | ButtonReleaseMask | - EnterWindowMask | LeaveWindowMask | ExposureMask; + EnterWindowMask | LeaveWindowMask | ExposureMask; XChangeWindowAttributes(gdk_display, window_private->xwindow, CWEventMask, &dnd_setwinattr); + } } - } return_val = window_private && !window_private->destroyed; break; - + case ButtonRelease: /* Print debugging info. */ GDK_NOTE (EVENTS, - g_print ("button release[%d]:\twindow: %ld x,y: %d %d button: %d\n", - window_private?window_private->dnd_drag_enabled:0, - xevent->xbutton.window - base_id, - xevent->xbutton.x, xevent->xbutton.y, - xevent->xbutton.button)); - + g_message ("button release[%d]:\twindow: %ld x,y: %d %d button: %d", + window_private?window_private->dnd_drag_enabled:0, + xevent->xbutton.window - base_id, + xevent->xbutton.x, xevent->xbutton.y, + xevent->xbutton.button)); + if (window_private && (window_private->extension_events != 0) && gdk_input_ignore_core) break; - + event->button.type = GDK_BUTTON_RELEASE; event->button.window = window; event->button.time = xevent->xbutton.time; @@ -2099,7 +2099,7 @@ gdk_event_translate (GdkEvent *event, event->button.button = xevent->xbutton.button; event->button.source = GDK_SOURCE_MOUSE; event->button.deviceid = GDK_CORE_POINTER; - + gdk_dnd.last_drop_time = xevent->xbutton.time; if(gdk_dnd.drag_perhaps) { @@ -2109,7 +2109,7 @@ gdk_event_translate (GdkEvent *event, doesn't change during drag */ attrs.event_mask = gdk_dnd.real_sw->dnd_drag_savedeventmask; XChangeWindowAttributes(gdk_display, gdk_dnd.real_sw->xwindow, - CWEventMask, &attrs); + CWEventMask, &attrs); } if (gdk_dnd.dnd_grabbed) @@ -2121,51 +2121,51 @@ gdk_event_translate (GdkEvent *event, gdk_dnd.dnd_grabbed = FALSE; } - if(gdk_dnd.drag_really) - { - GdkPoint foo; - foo.x = xevent->xbutton.x_root; - foo.y = xevent->xbutton.y_root; - - if(gdk_dnd.dnd_drag_target != None) - gdk_dnd_drag_end(gdk_dnd.dnd_drag_target, foo); - gdk_dnd.drag_really = 0; - - gdk_dnd.drag_numwindows = 0; - if(gdk_dnd.drag_startwindows) + if(gdk_dnd.drag_really) { - g_free(gdk_dnd.drag_startwindows); - gdk_dnd.drag_startwindows = NULL; + GdkPoint foo; + foo.x = xevent->xbutton.x_root; + foo.y = xevent->xbutton.y_root; + + if(gdk_dnd.dnd_drag_target != None) + gdk_dnd_drag_end(gdk_dnd.dnd_drag_target, foo); + gdk_dnd.drag_really = 0; + + gdk_dnd.drag_numwindows = 0; + if(gdk_dnd.drag_startwindows) + { + g_free(gdk_dnd.drag_startwindows); + gdk_dnd.drag_startwindows = NULL; + } + + gdk_dnd.real_sw = NULL; } - - gdk_dnd.real_sw = NULL; - } - - gdk_dnd.drag_perhaps = 0; - gdk_dnd.dnd_drag_start.x = gdk_dnd.dnd_drag_start.y = 0; - gdk_dnd.dnd_drag_dropzone.x = gdk_dnd.dnd_drag_dropzone.y = 0; - gdk_dnd.dnd_drag_dropzone.width = gdk_dnd.dnd_drag_dropzone.height = 0; - gdk_dnd.dnd_drag_curwin = None; - return_val = window_private?TRUE:FALSE; - } else - return_val = window_private && !window_private->destroyed; + + gdk_dnd.drag_perhaps = 0; + gdk_dnd.dnd_drag_start.x = gdk_dnd.dnd_drag_start.y = 0; + gdk_dnd.dnd_drag_dropzone.x = gdk_dnd.dnd_drag_dropzone.y = 0; + gdk_dnd.dnd_drag_dropzone.width = gdk_dnd.dnd_drag_dropzone.height = 0; + gdk_dnd.dnd_drag_curwin = None; + return_val = window_private?TRUE:FALSE; + } else + return_val = window_private && !window_private->destroyed; break; - + case MotionNotify: /* Print debugging info. */ GDK_NOTE (EVENTS, - g_print ("motion notify:\t\twindow: %ld x,y: %d %d hint: %s d:%d r%d\n", - xevent->xmotion.window - base_id, - xevent->xmotion.x, xevent->xmotion.y, - (xevent->xmotion.is_hint) ? "true" : "false", - gdk_dnd.drag_perhaps, gdk_dnd.drag_really)); - + g_message ("motion notify:\t\twindow: %ld x,y: %d %d hint: %s d:%d r%d", + xevent->xmotion.window - base_id, + xevent->xmotion.x, xevent->xmotion.y, + (xevent->xmotion.is_hint) ? "true" : "false", + gdk_dnd.drag_perhaps, gdk_dnd.drag_really)); + if (window_private && (window_private->extension_events != 0) && gdk_input_ignore_core) break; - + event->motion.type = GDK_MOTION_NOTIFY; event->motion.window = window; event->motion.time = xevent->xmotion.time; @@ -2180,12 +2180,12 @@ gdk_event_translate (GdkEvent *event, event->motion.is_hint = xevent->xmotion.is_hint; event->motion.source = GDK_SOURCE_MOUSE; event->motion.deviceid = GDK_CORE_POINTER; - + #define IS_IN_ZONE(cx, cy) (cx >= gdk_dnd.dnd_drag_dropzone.x \ && cy >= gdk_dnd.dnd_drag_dropzone.y \ && cx < (gdk_dnd.dnd_drag_dropzone.x + gdk_dnd.dnd_drag_dropzone.width) \ && cy < (gdk_dnd.dnd_drag_dropzone.y + gdk_dnd.dnd_drag_dropzone.height)) - + if(gdk_dnd.drag_perhaps && gdk_dnd.drag_really /* && event->motion.is_hint */ /* HINTME */) { @@ -2199,13 +2199,13 @@ gdk_event_translate (GdkEvent *event, #endif Window childwin = gdk_root_window; int x, y, ox, oy; - + /* Interlude - display cursor for the drag ASAP */ gdk_dnd_display_drag_cursor(xevent->xmotion.x_root, xevent->xmotion.y_root, gdk_dnd.dnd_drag_target?TRUE:FALSE, FALSE); - + lastwin = curwin; curwin = gdk_root_window; ox = x = xevent->xmotion.x_root; @@ -2231,23 +2231,23 @@ gdk_event_translate (GdkEvent *event, } #endif GDK_NOTE (DND, - g_print("Drag is now in window %#lx, lastwin was %#lx, ddc = %#lx\n", - curwin, lastwin, gdk_dnd.dnd_drag_curwin)); + g_message("Drag is now in window %#lx, lastwin was %#lx, ddc = %#lx", + curwin, lastwin, gdk_dnd.dnd_drag_curwin)); if(curwin != gdk_dnd.dnd_drag_curwin && curwin != lastwin) { /* We have left one window and entered another (do leave & enter bits) */ if(gdk_dnd.dnd_drag_curwin != None) - gdk_dnd_drag_leave(gdk_dnd.dnd_drag_curwin); + gdk_dnd_drag_leave(gdk_dnd.dnd_drag_curwin); gdk_dnd.dnd_drag_curwin = curwin; gdk_dnd_drag_enter(gdk_dnd.dnd_drag_curwin); gdk_dnd.dnd_drag_dropzone.x = gdk_dnd.dnd_drag_dropzone.y = 0; gdk_dnd.dnd_drag_dropzone.width = gdk_dnd.dnd_drag_dropzone.height = 0; gdk_dnd.dnd_drag_target = None; GDK_NOTE (DND, - g_print("curwin = %#lx, lastwin = %#lx, dnd_drag_curwin = %#lx\n", - curwin, lastwin, gdk_dnd.dnd_drag_curwin)); - + g_message("curwin = %#lx, lastwin = %#lx, dnd_drag_curwin = %#lx", + curwin, lastwin, gdk_dnd.dnd_drag_curwin)); + gdk_dnd_display_drag_cursor(xevent->xmotion.x_root, xevent->xmotion.y_root, FALSE, TRUE); @@ -2263,7 +2263,7 @@ gdk_event_translate (GdkEvent *event, xevent->xmotion.y_root); gboolean old_in_zone = IS_IN_ZONE(gdk_dnd.dnd_drag_oldpos.x, gdk_dnd.dnd_drag_oldpos.y); - + if (!in_zone && old_in_zone) { /* We were in the drop zone and moved out */ @@ -2284,31 +2284,31 @@ gdk_event_translate (GdkEvent *event, } } } /* else - dnd_drag_curwin = None; */ + dnd_drag_curwin = None; */ return_val = FALSE; } else return_val = window_private && !window_private->destroyed; break; - + case EnterNotify: /* Print debugging info. */ GDK_NOTE (EVENTS, - g_print ("enter notify:\t\twindow: %ld detail: %d subwin: %ld\n", - xevent->xcrossing.window - base_id, - xevent->xcrossing.detail, - xevent->xcrossing.subwindow - base_id)); - + g_message ("enter notify:\t\twindow: %ld detail: %d subwin: %ld", + xevent->xcrossing.window - base_id, + xevent->xcrossing.detail, + xevent->xcrossing.subwindow - base_id)); + /* Tell XInput stuff about it if appropriate */ if (window_private && (window_private->extension_events != 0) && gdk_input_vtable.enter_event) gdk_input_vtable.enter_event (&xevent->xcrossing, window); - + event->crossing.type = GDK_ENTER_NOTIFY; event->crossing.window = window; - + /* If the subwindow field of the XEvent is non-NULL, then * lookup the corresponding GdkWindow. */ @@ -2316,13 +2316,13 @@ gdk_event_translate (GdkEvent *event, event->crossing.subwindow = gdk_window_lookup (xevent->xcrossing.subwindow); else event->crossing.subwindow = NULL; - + event->crossing.time = xevent->xcrossing.time; event->crossing.x = xevent->xcrossing.x; event->crossing.y = xevent->xcrossing.y; event->crossing.x_root = xevent->xcrossing.x_root; event->crossing.y_root = xevent->xcrossing.y_root; - + /* Translate the crossing mode into Gdk terms. */ switch (xevent->xcrossing.mode) @@ -2337,7 +2337,7 @@ gdk_event_translate (GdkEvent *event, event->crossing.mode = GDK_CROSSING_UNGRAB; break; }; - + /* Translate the crossing detail into Gdk terms. */ switch (xevent->xcrossing.detail) @@ -2361,52 +2361,52 @@ gdk_event_translate (GdkEvent *event, event->crossing.detail = GDK_NOTIFY_UNKNOWN; break; } - + event->crossing.focus = xevent->xcrossing.focus; event->crossing.state = xevent->xcrossing.state; - + #ifdef G_ENABLE_DEBUG - if ((gdk_debug_flags & GDK_DEBUG_DND) & gdk_dnd.drag_perhaps) - { - g_print("We may[%d] have a drag into %#lx = %#lx\n", + if ((gdk_debug_flags & GDK_DEBUG_DND) & gdk_dnd.drag_perhaps) + { + g_message("We may[%d] have a drag into %#lx = %#lx", gdk_dnd.drag_really, xevent->xcrossing.window, gdk_dnd.real_sw->xwindow); - } + } #endif /* G_ENABLE_DEBUG */ - - if (gdk_dnd.drag_perhaps && gdk_dnd.drag_really && - (xevent->xcrossing.window == gdk_dnd.real_sw->xwindow)) - { + + if (gdk_dnd.drag_perhaps && gdk_dnd.drag_really && + (xevent->xcrossing.window == gdk_dnd.real_sw->xwindow)) + { #if 0 - gdk_dnd.drag_really = 0; - - GDK_NOTE (DND, g_print("Ungrabbed\n")); - - gdk_dnd.drag_numwindows = 0; - g_free(gdk_dnd.drag_startwindows); - gdk_dnd.drag_startwindows = NULL; - /* We don't want to ungrab the pointer here, or we'll - * start getting spurious enter/leave events */ + gdk_dnd.drag_really = 0; + + GDK_NOTE (DND, g_message("Ungrabbed")); + + gdk_dnd.drag_numwindows = 0; + g_free(gdk_dnd.drag_startwindows); + gdk_dnd.drag_startwindows = NULL; + /* We don't want to ungrab the pointer here, or we'll + * start getting spurious enter/leave events */ #endif #if 0 - XChangeActivePointerGrab (gdk_display, 0, None, CurrentTime); + XChangeActivePointerGrab (gdk_display, 0, None, CurrentTime); #endif - } - - return_val = window_private && !window_private->destroyed; - break; - + } + + return_val = window_private && !window_private->destroyed; + break; + case LeaveNotify: /* Print debugging info. */ GDK_NOTE (EVENTS, - g_print ("leave notify:\t\twindow: %ld detail: %d subwin: %ld\n", - xevent->xcrossing.window - base_id, - xevent->xcrossing.detail, xevent->xcrossing.subwindow - base_id)); - + g_message ("leave notify:\t\twindow: %ld detail: %d subwin: %ld", + xevent->xcrossing.window - base_id, + xevent->xcrossing.detail, xevent->xcrossing.subwindow - base_id)); + event->crossing.type = GDK_LEAVE_NOTIFY; event->crossing.window = window; - + /* If the subwindow field of the XEvent is non-NULL, then * lookup the corresponding GdkWindow. */ @@ -2414,13 +2414,13 @@ gdk_event_translate (GdkEvent *event, event->crossing.subwindow = gdk_window_lookup (xevent->xcrossing.subwindow); else event->crossing.subwindow = NULL; - + event->crossing.time = xevent->xcrossing.time; event->crossing.x = xevent->xcrossing.x; event->crossing.y = xevent->xcrossing.y; event->crossing.x_root = xevent->xcrossing.x_root; event->crossing.y_root = xevent->xcrossing.y_root; - + /* Translate the crossing mode into Gdk terms. */ switch (xevent->xcrossing.mode) @@ -2435,7 +2435,7 @@ gdk_event_translate (GdkEvent *event, event->crossing.mode = GDK_CROSSING_UNGRAB; break; }; - + /* Translate the crossing detail into Gdk terms. */ switch (xevent->xcrossing.detail) @@ -2459,16 +2459,16 @@ gdk_event_translate (GdkEvent *event, event->crossing.detail = GDK_NOTIFY_UNKNOWN; break; } - + event->crossing.focus = xevent->xcrossing.focus; event->crossing.state = xevent->xcrossing.state; - + #ifdef G_ENABLE_DEBUG if ((gdk_debug_flags & GDK_DEBUG_DND) & gdk_dnd.drag_perhaps) { - g_print("We may[%d] have a drag out of %#lx = %#lx\n", - gdk_dnd.drag_really, - xevent->xcrossing.window, gdk_dnd.real_sw->xwindow); + g_message("We may[%d] have a drag out of %#lx = %#lx", + gdk_dnd.drag_really, + xevent->xcrossing.window, gdk_dnd.real_sw->xwindow); } #endif /* G_ENABLE_DEBUG */ if (gdk_dnd.drag_perhaps && !gdk_dnd.drag_really && @@ -2478,14 +2478,14 @@ gdk_event_translate (GdkEvent *event, gdk_dnd_drag_addwindow((GdkWindow *) gdk_dnd.real_sw); gdk_dnd_drag_begin((GdkWindow *) gdk_dnd.real_sw); xgpret = - XGrabPointer(gdk_display, gdk_dnd.real_sw->xwindow, False, - ButtonMotionMask | PointerMotionMask | - /* PointerMotionHintMask | */ /* HINTME */ - ButtonPressMask | ButtonReleaseMask, - GrabModeAsync, GrabModeAsync, None, - None, CurrentTime); + XGrabPointer(gdk_display, gdk_dnd.real_sw->xwindow, False, + ButtonMotionMask | PointerMotionMask | + /* PointerMotionHintMask | */ /* HINTME */ + ButtonPressMask | ButtonReleaseMask, + GrabModeAsync, GrabModeAsync, None, + None, CurrentTime); #ifdef G_ENABLE_DEBUG - GDK_NOTE(DND, g_print("xgpret = %d\n", xgpret)); + GDK_NOTE(DND, g_message("xgpret = %d", xgpret)); #endif gdk_dnd.dnd_grabbed = TRUE; gdk_dnd.drag_really = 1; @@ -2493,10 +2493,10 @@ gdk_event_translate (GdkEvent *event, xevent->xmotion.y_root, FALSE, TRUE); } - + return_val = window_private && !window_private->destroyed; break; - + case FocusIn: case FocusOut: /* We only care about focus events that indicate that _this_ @@ -2510,9 +2510,9 @@ gdk_event_translate (GdkEvent *event, /* Print debugging info. */ GDK_NOTE (EVENTS, - g_print ("focus %s:\t\twindow: %ld\n", - (xevent->xany.type == FocusIn) ? "in" : "out", - xevent->xfocus.window - base_id)); + g_message ("focus %s:\t\twindow: %ld", + (xevent->xany.type == FocusIn) ? "in" : "out", + xevent->xfocus.window - base_id)); event->focus_change.type = GDK_FOCUS_CHANGE; event->focus_change.window = window; @@ -2521,28 +2521,28 @@ gdk_event_translate (GdkEvent *event, return_val = window_private && !window_private->destroyed; break; default: - ; + ; } break; - + case KeymapNotify: /* Print debugging info. */ GDK_NOTE (EVENTS, - g_print ("keymap notify\n")); - + g_message ("keymap notify")); + /* Not currently handled */ break; - + case Expose: /* Print debugging info. */ GDK_NOTE (EVENTS, - g_print ("expose:\t\twindow: %ld %d x,y: %d %d w,h: %d %d\n", - xevent->xexpose.window - base_id, xevent->xexpose.count, - xevent->xexpose.x, xevent->xexpose.y, - xevent->xexpose.width, xevent->xexpose.height)); - + g_message ("expose:\t\twindow: %ld %d x,y: %d %d w,h: %d %d", + xevent->xexpose.window - base_id, xevent->xexpose.count, + xevent->xexpose.x, xevent->xexpose.y, + xevent->xexpose.width, xevent->xexpose.height)); + event->expose.type = GDK_EXPOSE; event->expose.window = window; event->expose.area.x = xevent->xexpose.x; @@ -2550,17 +2550,17 @@ gdk_event_translate (GdkEvent *event, event->expose.area.width = xevent->xexpose.width; event->expose.area.height = xevent->xexpose.height; event->expose.count = xevent->xexpose.count; - + return_val = window_private && !window_private->destroyed; break; - + case GraphicsExpose: /* Print debugging info. */ GDK_NOTE (EVENTS, - g_print ("graphics expose:\tdrawable: %ld\n", - xevent->xgraphicsexpose.drawable - base_id)); - + g_message ("graphics expose:\tdrawable: %ld", + xevent->xgraphicsexpose.drawable - base_id)); + event->expose.type = GDK_EXPOSE; event->expose.window = window; event->expose.area.x = xevent->xgraphicsexpose.x; @@ -2568,23 +2568,23 @@ gdk_event_translate (GdkEvent *event, event->expose.area.width = xevent->xgraphicsexpose.width; event->expose.area.height = xevent->xgraphicsexpose.height; event->expose.count = xevent->xexpose.count; - + return_val = window_private && !window_private->destroyed; break; - + case NoExpose: /* Print debugging info. */ GDK_NOTE (EVENTS, - g_print ("no expose:\t\tdrawable: %ld\n", - xevent->xnoexpose.drawable - base_id)); - + g_message ("no expose:\t\tdrawable: %ld", + xevent->xnoexpose.drawable - base_id)); + event->no_expose.type = GDK_NO_EXPOSE; event->no_expose.window = window; - + return_val = window_private && !window_private->destroyed; break; - + case VisibilityNotify: /* Print debugging info. */ @@ -2593,33 +2593,33 @@ gdk_event_translate (GdkEvent *event, switch (xevent->xvisibility.state) { case VisibilityFullyObscured: - g_print ("visibility notify:\twindow: %ld none\n", - xevent->xvisibility.window - base_id); + g_message ("visibility notify:\twindow: %ld none", + xevent->xvisibility.window - base_id); break; case VisibilityPartiallyObscured: - g_print ("visibility notify:\twindow: %ld partial\n", - xevent->xvisibility.window - base_id); + g_message ("visibility notify:\twindow: %ld partial", + xevent->xvisibility.window - base_id); break; case VisibilityUnobscured: - g_print ("visibility notify:\twindow: %ld full\n", - xevent->xvisibility.window - base_id); + g_message ("visibility notify:\twindow: %ld full", + xevent->xvisibility.window - base_id); break; } #endif /* G_ENABLE_DEBUG */ - + event->visibility.type = GDK_VISIBILITY_NOTIFY; event->visibility.window = window; - + switch (xevent->xvisibility.state) { case VisibilityFullyObscured: event->visibility.state = GDK_VISIBILITY_FULLY_OBSCURED; break; - + case VisibilityPartiallyObscured: event->visibility.state = GDK_VISIBILITY_PARTIAL; break; - + case VisibilityUnobscured: event->visibility.state = GDK_VISIBILITY_UNOBSCURED; break; @@ -2627,84 +2627,84 @@ gdk_event_translate (GdkEvent *event, return_val = window_private && !window_private->destroyed; break; - + case CreateNotify: /* Not currently handled */ break; - + case DestroyNotify: /* Print debugging info. */ GDK_NOTE (EVENTS, - g_print ("destroy notify:\twindow: %ld\n", - xevent->xdestroywindow.window - base_id)); - + g_message ("destroy notify:\twindow: %ld", + xevent->xdestroywindow.window - base_id)); + event->any.type = GDK_DESTROY; event->any.window = window; - + return_val = window_private && !window_private->destroyed; - + if(window && window_private->xwindow != GDK_ROOT_WINDOW()) - gdk_window_destroy_notify (window); + gdk_window_destroy_notify (window); break; - + case UnmapNotify: /* Print debugging info. */ GDK_NOTE (EVENTS, - g_print ("unmap notify:\t\twindow: %ld\n", - xevent->xmap.window - base_id)); - + g_message ("unmap notify:\t\twindow: %ld", + xevent->xmap.window - base_id)); + event->any.type = GDK_UNMAP; event->any.window = window; - + if (xgrab_window == window_private) xgrab_window = NULL; - + return_val = window_private && !window_private->destroyed; break; - + case MapNotify: /* Print debugging info. */ GDK_NOTE (EVENTS, - g_print ("map notify:\t\twindow: %ld\n", - xevent->xmap.window - base_id)); - + g_message ("map notify:\t\twindow: %ld", + xevent->xmap.window - base_id)); + event->any.type = GDK_MAP; event->any.window = window; - + return_val = window_private && !window_private->destroyed; break; - + case ReparentNotify: /* Print debugging info. */ GDK_NOTE (EVENTS, - g_print ("reparent notify:\twindow: %ld\n", - xevent->xreparent.window - base_id)); - + g_message ("reparent notify:\twindow: %ld", + xevent->xreparent.window - base_id)); + /* Not currently handled */ break; - + case ConfigureNotify: /* Print debugging info. */ while ((XPending (gdk_display) > 0) && XCheckTypedWindowEvent(gdk_display, xevent->xany.window, ConfigureNotify, xevent)) - { + { GdkFilterReturn result; - + GDK_NOTE (EVENTS, - g_print ("configure notify discarded:\twindow: %ld\n", - xevent->xconfigure.window - base_id)); - + g_message ("configure notify discarded:\twindow: %ld", + xevent->xconfigure.window - base_id)); + result = gdk_event_apply_filters (xevent, event, window_private ?window_private->filters :gdk_default_filters); - + /* If the result is GDK_FILTER_REMOVE, there will be * trouble, but anybody who filtering the Configure events * better know what they are doing @@ -2713,21 +2713,21 @@ gdk_event_translate (GdkEvent *event, { return (result == GDK_FILTER_TRANSLATE) ? TRUE : FALSE; } - - /*XSync (gdk_display, 0);*/ + + /*XSync (gdk_display, 0);*/ } - + GDK_NOTE (EVENTS, - g_print ("configure notify:\twindow: %ld x,y: %d %d w,h: %d %d b-w: %d above: %ld ovr: %d\n", - xevent->xconfigure.window - base_id, - xevent->xconfigure.x, - xevent->xconfigure.y, - xevent->xconfigure.width, - xevent->xconfigure.height, - xevent->xconfigure.border_width, - xevent->xconfigure.above - base_id, - xevent->xconfigure.override_redirect)); + g_message ("configure notify:\twindow: %ld x,y: %d %d w,h: %d %d b-w: %d above: %ld ovr: %d", + xevent->xconfigure.window - base_id, + xevent->xconfigure.x, + xevent->xconfigure.y, + xevent->xconfigure.width, + xevent->xconfigure.height, + xevent->xconfigure.border_width, + xevent->xconfigure.above - base_id, + xevent->xconfigure.override_redirect)); if (window_private) { @@ -2749,7 +2749,7 @@ gdk_event_translate (GdkEvent *event, gint tx = 0; gint ty = 0; Window child_window = 0; - + if (!XTranslateCoordinates (window_private->xdisplay, window_private->xwindow, gdk_root_window, @@ -2782,36 +2782,36 @@ gdk_event_translate (GdkEvent *event, /* Print debugging info. */ GDK_NOTE (EVENTS, - g_print ("property notify:\twindow: %ld\n", - xevent->xproperty.window - base_id)); - + g_message ("property notify:\twindow: %ld", + xevent->xproperty.window - base_id)); + event->property.type = GDK_PROPERTY_NOTIFY; event->property.window = window; event->property.atom = xevent->xproperty.atom; event->property.time = xevent->xproperty.time; event->property.state = xevent->xproperty.state; - + return_val = window_private && !window_private->destroyed; break; - + case SelectionClear: GDK_NOTE (EVENTS, - g_print ("selection clear:\twindow: %ld\n", - xevent->xproperty.window - base_id)); - + g_message ("selection clear:\twindow: %ld", + xevent->xproperty.window - base_id)); + event->selection.type = GDK_SELECTION_CLEAR; event->selection.window = window; event->selection.selection = xevent->xselectionclear.selection; event->selection.time = xevent->xselectionclear.time; - + return_val = window_private && !window_private->destroyed; break; - + case SelectionRequest: GDK_NOTE (EVENTS, - g_print ("selection request:\twindow: %ld\n", - xevent->xproperty.window - base_id)); - + g_message ("selection request:\twindow: %ld", + xevent->xproperty.window - base_id)); + event->selection.type = GDK_SELECTION_REQUEST; event->selection.window = window; event->selection.selection = xevent->xselectionrequest.selection; @@ -2819,43 +2819,43 @@ gdk_event_translate (GdkEvent *event, event->selection.property = xevent->xselectionrequest.property; event->selection.requestor = xevent->xselectionrequest.requestor; event->selection.time = xevent->xselectionrequest.time; - + return_val = window_private && !window_private->destroyed; break; - + case SelectionNotify: GDK_NOTE (EVENTS, - g_print ("selection notify:\twindow: %ld\n", - xevent->xproperty.window - base_id)); - - + g_message ("selection notify:\twindow: %ld", + xevent->xproperty.window - base_id)); + + event->selection.type = GDK_SELECTION_NOTIFY; event->selection.window = window; event->selection.selection = xevent->xselection.selection; event->selection.target = xevent->xselection.target; event->selection.property = xevent->xselection.property; event->selection.time = xevent->xselection.time; - + return_val = window_private && !window_private->destroyed; break; - + case ColormapNotify: /* Print debugging info. */ GDK_NOTE (EVENTS, - g_print ("colormap notify:\twindow: %ld\n", - xevent->xcolormap.window - base_id)); - + g_message ("colormap notify:\twindow: %ld", + xevent->xcolormap.window - base_id)); + /* Not currently handled */ break; - + case ClientMessage: /* Print debugging info. */ GDK_NOTE (EVENTS, - g_print ("client message:\twindow: %ld\n", - xevent->xclient.window - base_id)); - + g_message ("client message:\twindow: %ld", + xevent->xclient.window - base_id)); + /* Client messages are the means of the window manager * communicating with a program. We'll first check to * see if this is really the window manager talking @@ -2873,16 +2873,16 @@ gdk_event_translate (GdkEvent *event, * the event is passed along to the program, * which should then destroy the window. */ - + /* Print debugging info. */ GDK_NOTE (EVENTS, - g_print ("delete window:\t\twindow: %ld\n", - xevent->xclient.window - base_id)); - + g_message ("delete window:\t\twindow: %ld", + xevent->xclient.window - base_id)); + event->any.type = GDK_DELETE; event->any.window = window; - + return_val = window_private && !window_private->destroyed; } else if ((Atom) xevent->xclient.data.l[0] == gdk_wm_take_focus) @@ -2892,13 +2892,13 @@ gdk_event_translate (GdkEvent *event, else if (xevent->xclient.message_type == gdk_dnd.gdk_XdeEnter) { Atom reptype = 0; - + event->dropenter.u.allflags = xevent->xclient.data.l[1]; - - GDK_NOTE (DND, g_print ("GDK_DROP_ENTER [%d][%d]\n", - window_private->dnd_drop_enabled, event->dropenter.u.flags.sendreply)); + + GDK_NOTE (DND, g_message ("GDK_DROP_ENTER [%d][%d]", + window_private->dnd_drop_enabled, event->dropenter.u.flags.sendreply)); return_val = FALSE; - + /* Now figure out if we really want this drop... * If someone is trying funky clipboard stuff, ignore */ @@ -2908,35 +2908,35 @@ gdk_event_translate (GdkEvent *event, && (reptype = gdk_dnd_check_types (window, xevent))) { XEvent replyev; - + replyev.xclient.type = ClientMessage; replyev.xclient.window = xevent->xclient.data.l[0]; replyev.xclient.format = 32; replyev.xclient.message_type = gdk_dnd.gdk_XdeRequest; replyev.xclient.data.l[0] = window_private->xwindow; - + event->dragrequest.u.allflags = 0; event->dragrequest.u.flags.protocol_version = DND_PROTOCOL_VERSION; event->dragrequest.u.flags.willaccept = 1; event->dragrequest.u.flags.delete_data = (window_private->dnd_drop_destructive_op) ? 1 : 0; - + replyev.xclient.data.l[1] = event->dragrequest.u.allflags; replyev.xclient.data.l[2] = replyev.xclient.data.l[3] = 0; replyev.xclient.data.l[4] = reptype; - + if (!gdk_send_xevent (replyev.xclient.window, False, NoEventMask, &replyev)) - GDK_NOTE (DND, g_print("Sending XdeRequest to %#lx failed\n", - replyev.xclient.window)); - + GDK_NOTE (DND, g_message("Sending XdeRequest to %#lx failed", + replyev.xclient.window)); + event->any.type = GDK_DROP_ENTER; event->any.window = window; event->dropenter.requestor = replyev.xclient.window; event->dropenter.u.allflags = xevent->xclient.data.l[1]; - - GDK_NOTE (DND, g_print("We sent a GDK_DROP_ENTER on to Gtk\n")); + + GDK_NOTE (DND, g_message("We sent a GDK_DROP_ENTER on to Gtk")); return_val = TRUE; } } @@ -2944,9 +2944,9 @@ gdk_event_translate (GdkEvent *event, { #ifdef G_ENABLE_DEBUG if (gdk_debug_flags & (GDK_DEBUG_EVENTS | GDK_DEBUG_DND)) - g_print ("GDK_DROP_LEAVE\n"); + g_message ("GDK_DROP_LEAVE"); #endif - + if (window_private && window_private->dnd_drop_enabled) { event->dropleave.type = GDK_DROP_LEAVE; @@ -2966,11 +2966,11 @@ gdk_event_translate (GdkEvent *event, */ #ifdef G_ENABLE_DEBUG if (gdk_debug_flags & (GDK_DEBUG_EVENTS | GDK_DEBUG_DND)) - g_print ("GDK_DRAG_REQUEST\n"); + g_message ("GDK_DRAG_REQUEST"); #endif event->dragrequest.u.allflags = xevent->xclient.data.l[1]; return_val = FALSE; - + if (window && gdk_dnd.drag_really && xevent->xclient.data.l[0] == gdk_dnd.dnd_drag_curwin && event->dragrequest.u.flags.sendreply == 0) @@ -2995,7 +2995,7 @@ gdk_event_translate (GdkEvent *event, window_private->dnd_drag_accepted = 1; window_private->dnd_drag_data_type = xevent->xclient.data.l[4]; - + gdk_dnd.dnd_drag_target = gdk_dnd.dnd_drag_curwin; gdk_dnd_display_drag_cursor(-1, -1, TRUE, TRUE); } @@ -3008,56 +3008,56 @@ gdk_event_translate (GdkEvent *event, } } else if(xevent->xclient.message_type == gdk_dnd.gdk_XdeDataAvailable) - { - gint tmp_int; Atom tmp_atom; - gulong tmp_long; - guchar *tmp_charptr; - + { + gint tmp_int; Atom tmp_atom; + gulong tmp_long; + guchar *tmp_charptr; + #ifdef G_ENABLE_DEBUG if (gdk_debug_flags & (GDK_DEBUG_EVENTS | GDK_DEBUG_DND)) - g_print("GDK_DROP_DATA_AVAIL\n"); + g_message("GDK_DROP_DATA_AVAIL"); #endif - event->dropdataavailable.u.allflags = xevent->xclient.data.l[1]; - event->dropdataavailable.timestamp = xevent->xclient.data.l[4]; - event->dropdataavailable.coords.x = - xevent->xclient.data.l[3] & 0xffff; - event->dropdataavailable.coords.y = - (xevent->xclient.data.l[3] >> 16) & 0xffff; - if(window - /* No preview of data ATM */ - && event->dropdataavailable.u.flags.isdrop) - { - event->dropdataavailable.type = GDK_DROP_DATA_AVAIL; - event->dropdataavailable.window = window; - event->dropdataavailable.requestor = xevent->xclient.data.l[0]; - event->dropdataavailable.data_type = - gdk_atom_name(xevent->xclient.data.l[2]); - if(XGetWindowProperty (gdk_display, - event->dropdataavailable.requestor, - xevent->xclient.data.l[2], - 0, LONG_MAX - 1, - False, XA_PRIMARY, &tmp_atom, - &tmp_int, - &event->dropdataavailable.data_numbytes, - &tmp_long, - &tmp_charptr) - != Success) - { - g_warning("XGetWindowProperty on %#x may have failed\n", + event->dropdataavailable.u.allflags = xevent->xclient.data.l[1]; + event->dropdataavailable.timestamp = xevent->xclient.data.l[4]; + event->dropdataavailable.coords.x = + xevent->xclient.data.l[3] & 0xffff; + event->dropdataavailable.coords.y = + (xevent->xclient.data.l[3] >> 16) & 0xffff; + if(window + /* No preview of data ATM */ + && event->dropdataavailable.u.flags.isdrop) + { + event->dropdataavailable.type = GDK_DROP_DATA_AVAIL; + event->dropdataavailable.window = window; + event->dropdataavailable.requestor = xevent->xclient.data.l[0]; + event->dropdataavailable.data_type = + gdk_atom_name(xevent->xclient.data.l[2]); + if(XGetWindowProperty (gdk_display, + event->dropdataavailable.requestor, + xevent->xclient.data.l[2], + 0, LONG_MAX - 1, + False, XA_PRIMARY, &tmp_atom, + &tmp_int, + &event->dropdataavailable.data_numbytes, + &tmp_long, + &tmp_charptr) + != Success) + { + g_warning("XGetWindowProperty on %#x may have failed\n", event->dropdataavailable.requestor); - event->dropdataavailable.data = NULL; - } - else - { - GDK_NOTE (DND, g_print("XGetWindowProperty got us %ld bytes\n", - event->dropdataavailable.data_numbytes)); - event->dropdataavailable.data = - g_malloc (event->dropdataavailable.data_numbytes); - memcpy (event->dropdataavailable.data, - tmp_charptr, event->dropdataavailable.data_numbytes); - XFree(tmp_charptr); - return_val = TRUE; - } + event->dropdataavailable.data = NULL; + } + else + { + GDK_NOTE (DND, g_message("XGetWindowProperty got us %ld bytes", + event->dropdataavailable.data_numbytes)); + event->dropdataavailable.data = + g_malloc (event->dropdataavailable.data_numbytes); + memcpy (event->dropdataavailable.data, + tmp_charptr, event->dropdataavailable.data_numbytes); + XFree(tmp_charptr); + return_val = TRUE; + } return_val = TRUE; } } @@ -3083,28 +3083,28 @@ gdk_event_translate (GdkEvent *event, /* Print debugging info. */ GDK_NOTE (EVENTS, - g_print ("mapping notify\n")); - + g_message ("mapping notify")); + /* Let XLib know that there is a new keyboard mapping. */ XRefreshKeyboardMapping (&xevent->xmapping); break; - + default: /* something else - (e.g., a Xinput event) */ - + if (window_private && (window_private->extension_events != 0) && gdk_input_vtable.other_event) return_val = gdk_input_vtable.other_event(event, xevent, window); else return_val = FALSE; - + return_val = return_val && !window_private->destroyed; - + break; } - + if (return_val) { if (event->any.window) @@ -3120,10 +3120,10 @@ gdk_event_translate (GdkEvent *event, event->any.window = NULL; event->any.type = GDK_NOTHING; } - + if (window) gdk_window_unref (window); - + return return_val; } @@ -3135,28 +3135,28 @@ gdk_event_get_type (Display *display, { GdkEvent event; GdkPredicate *pred; - + if (gdk_event_translate (&event, xevent)) { pred = (GdkPredicate*) arg; return (* pred->func) (&event, pred->data); } - + return FALSE; } #endif static void gdk_synthesize_click (GdkEvent *event, - gint nclicks) + gint nclicks) { GdkEvent temp_event; - + g_return_if_fail (event != NULL); - + temp_event = *event; temp_event.type = (nclicks == 2) ? GDK_2BUTTON_PRESS : GDK_3BUTTON_PRESS; - + gdk_event_put (&temp_event); } @@ -3181,14 +3181,14 @@ static void gdk_exit_func (void) { static gboolean in_gdk_exit_func = FALSE; - + /* This is to avoid an infinite loop if a program segfaults in an atexit() handler (and yes, it does happen, especially if a program - has trounced over memory too badly for even g_print to work) */ + has trounced over memory too badly for even g_message to work) */ if (in_gdk_exit_func == TRUE) return; in_gdk_exit_func = TRUE; - + if (gdk_initialized) { #ifdef USE_XIM @@ -3200,7 +3200,7 @@ gdk_exit_func (void) gdk_image_exit (); gdk_input_exit (); gdk_key_repeat_restore (); - + XCloseDisplay (gdk_display); gdk_initialized = 0; } @@ -3229,11 +3229,11 @@ gdk_exit_func (void) */ static int -gdk_x_error (Display *display, +gdk_x_error (Display *display, XErrorEvent *error) { char buf[64]; - + if (gdk_error_warnings) { XGetErrorText (display, error->error_code, buf, 63); @@ -3244,7 +3244,7 @@ gdk_x_error (Display *display, error->request_code, error->minor_code); } - + gdk_error_code = -1; return 0; } @@ -3301,11 +3301,11 @@ gdk_signal (int sig_num) { static int caught_fatal_sig = 0; char *sig; - + if (caught_fatal_sig) kill (getpid (), sig_num); caught_fatal_sig = 1; - + switch (sig_num) { case SIGHUP: @@ -3333,8 +3333,8 @@ gdk_signal (int sig_num) sig = "unknown signal"; break; } - - g_print ("\n** ERROR **: %s caught\n", sig); + + g_message ("\n** ERROR **: %s caught", sig); #ifdef G_ENABLE_DEBUG abort (); #else /* !G_ENABLE_DEBUG */ @@ -3346,14 +3346,14 @@ static void gdk_dnd_drag_begin (GdkWindow *initial_window) { GdkEvent tev; - - GDK_NOTE(DND, g_print("------- STARTING DRAG from %p\n", initial_window)); - + + GDK_NOTE(DND, g_message("------- STARTING DRAG from %p", initial_window)); + tev.type = GDK_DRAG_BEGIN; tev.dragbegin.window = initial_window; tev.dragbegin.u.allflags = 0; tev.dragbegin.u.flags.protocol_version = DND_PROTOCOL_VERSION; - + gdk_event_put (&tev); } @@ -3369,7 +3369,7 @@ gdk_dnd_drag_enter (Window dest) sev.xclient.format = 32; sev.xclient.message_type = gdk_dnd.gdk_XdeEnter; sev.xclient.window = dest; - + tev.u.allflags = 0; tev.u.flags.protocol_version = DND_PROTOCOL_VERSION; tev.u.flags.sendreply = 1; @@ -3395,10 +3395,10 @@ gdk_dnd_drag_enter (Window dest) else sev.xclient.data.l[3] = sev.xclient.data.l[4] = None; if (!gdk_send_xevent (dest, False, StructureNotifyMask, &sev)) - GDK_NOTE (DND, g_print("Sending XdeEnter to %#lx failed\n", - dest)); + GDK_NOTE (DND, g_message("Sending XdeEnter to %#lx failed", + dest)); } - + } } @@ -3413,9 +3413,9 @@ gdk_dnd_drag_enter (Window dest) */ /* This needs to match XIMArg as defined in Xlcint.h exactly */ - + typedef struct { - gchar *name; + gchar *name; gpointer value; } GdkImArg; @@ -3433,7 +3433,7 @@ gdk_im_va_count (va_list list) { gint count = 0; gchar *name; - + name = va_arg (list, gchar *); while (name) { @@ -3441,7 +3441,7 @@ gdk_im_va_count (va_list list) (void)va_arg (list, gpointer); name = va_arg (list, gchar *); } - + return count; } @@ -3460,15 +3460,15 @@ gdk_im_va_to_nested (va_list list, guint count) { GdkImArg *result; GdkImArg *arg; - + gchar *name; - + if (count == 0) return NULL; - + result = g_new (GdkImArg, count+1); arg = result; - + name = va_arg (list, gchar *); while (name) { @@ -3477,9 +3477,9 @@ gdk_im_va_to_nested (va_list list, guint count) arg++; name = va_arg (list, gchar *); } - + arg->name = NULL; - + return (XVaNestedList)result; } @@ -3508,12 +3508,12 @@ gdk_im_begin (GdkIC ic, GdkWindow* window) { GdkICPrivate *private; Window xwin; - + g_return_if_fail (ic != NULL); g_return_if_fail (window); - + private = (GdkICPrivate *) ic; - + xim_using = TRUE; xim_ic = private; xim_window = window; @@ -3521,7 +3521,7 @@ gdk_im_begin (GdkIC ic, GdkWindow* window) { XGetICValues (private->xic, XNFocusWindow, &xwin, NULL); if (xwin != GDK_WINDOW_XWINDOW(window)) - XSetICValues (private->xic, XNFocusWindow, + XSetICValues (private->xic, XNFocusWindow, GDK_WINDOW_XWINDOW(window), NULL); if (private != xim_ic) XSetICFocus (private->xic); @@ -3563,13 +3563,13 @@ static GdkIMStyle gdk_im_choose_better_style (GdkIMStyle style1, GdkIMStyle style2) { GdkIMStyle s1, s2, u; - + if (style1 == 0) return style2; if (style2 == 0) return style1; if ((style1 & (GdkIMPreeditMask | GdkIMStatusMask)) - == (style2 & (GdkIMPreeditMask | GdkIMStatusMask))) + == (style2 & (GdkIMPreeditMask | GdkIMStatusMask))) return style1; - + s1 = style1 & GdkIMPreeditMask; s2 = style2 & GdkIMPreeditMask; u = s1 | s2; @@ -3603,9 +3603,9 @@ gdk_im_decide_style (GdkIMStyle supported_style) { gint i; GdkIMStyle style, tmp; - + g_return_val_if_fail (xim_styles != NULL, 0); - + style = 0; for (i=0; i<xim_styles->count_styles; i++) { @@ -3622,7 +3622,7 @@ gdk_im_set_best_style (GdkIMStyle style) if (style & GdkIMPreeditMask) { xim_best_allowed_style &= ~GdkIMPreeditMask; - + xim_best_allowed_style |= GdkIMPreeditNone; if (!(style & GdkIMPreeditNone)) { @@ -3642,7 +3642,7 @@ gdk_im_set_best_style (GdkIMStyle style) if (style & GdkIMStatusMask) { xim_best_allowed_style &= ~GdkIMStatusMask; - + xim_best_allowed_style |= GdkIMStatusNone; if (!(style & GdkIMStatusNone)) { @@ -3669,7 +3669,7 @@ gdk_im_open (XrmDatabase db, gchar* res_name, gchar* res_class) return FALSE; } XGetIMValues (xim_im, XNQueryInputStyle, &xim_styles, NULL, NULL); - + return TRUE; } @@ -3703,17 +3703,17 @@ gdk_ic_new (GdkWindow* client_window, GdkICPrivate *private; XVaNestedList preedit_attr = NULL; guint count; - + g_return_val_if_fail (client_window != NULL, NULL); g_return_val_if_fail (focus_window != NULL, NULL); g_return_val_if_fail (gdk_im_ready(), NULL); - + private = g_new (GdkICPrivate, 1); - + va_start (list, style); count = gdk_im_va_count (list); va_end (list); - + va_start (list, style); preedit_attr = gdk_im_va_to_nested (list, count); va_end (list); @@ -3725,14 +3725,14 @@ gdk_ic_new (GdkWindow* client_window, g_free (private); return NULL; } - + private->xic = XCreateIC(gdk_im_get (), - XNInputStyle, style, - XNClientWindow, GDK_WINDOW_XWINDOW (client_window), - XNFocusWindow, GDK_WINDOW_XWINDOW (focus_window), - preedit_attr? XNPreeditAttributes : NULL, preedit_attr, - NULL); - + XNInputStyle, style, + XNClientWindow, GDK_WINDOW_XWINDOW (client_window), + XNFocusWindow, GDK_WINDOW_XWINDOW (focus_window), + preedit_attr? XNPreeditAttributes : NULL, preedit_attr, + NULL); + g_free (preedit_attr); if (!private->xic) @@ -3740,7 +3740,7 @@ gdk_ic_new (GdkWindow* client_window, g_free (private); return NULL; } - + xim_ic_list = g_list_append (xim_ic_list, private); return private; } @@ -3749,14 +3749,14 @@ void gdk_ic_destroy (GdkIC ic) { GdkICPrivate *private; - + g_return_if_fail (ic != NULL); private = (GdkICPrivate *) ic; - + if (xim_ic == private) gdk_im_end (); - + XDestroyIC (private->xic); xim_ic_list = g_list_remove (xim_ic_list, private); g_free (private); @@ -3766,11 +3766,11 @@ GdkIMStyle gdk_ic_get_style (GdkIC ic) { GdkICPrivate *private; - + g_return_val_if_fail (ic != NULL, 0); - + private = (GdkICPrivate *) ic; - + return private->style; } @@ -3781,21 +3781,21 @@ gdk_ic_set_values (GdkIC ic, ...) XVaNestedList args; GdkICPrivate *private; guint count; - + g_return_if_fail (ic != NULL); - + private = (GdkICPrivate *) ic; - + va_start (list, ic); count = gdk_im_va_count (list); va_end (list); - + va_start (list, ic); args = gdk_im_va_to_nested (list, count); va_end (list); - + XSetICValues (private->xic, XNVaNestedList, args, NULL); - + g_free (args); } @@ -3806,21 +3806,21 @@ gdk_ic_get_values (GdkIC ic, ...) XVaNestedList args; GdkICPrivate *private; guint count; - + g_return_if_fail (ic != NULL); - + private = (GdkICPrivate *) ic; - + va_start (list, ic); count = gdk_im_va_count (list); va_end (list); - + va_start (list, ic); args = gdk_im_va_to_nested (list, count); va_end (list); - + XGetICValues (private->xic, XNVaNestedList, args, NULL); - + g_free (args); } @@ -3831,22 +3831,22 @@ gdk_ic_set_attr (GdkIC ic, const char *target, ...) XVaNestedList attr; GdkICPrivate *private; guint count; - + g_return_if_fail (ic != NULL); g_return_if_fail (target != NULL); - + private = (GdkICPrivate *) ic; - + va_start (list, target); count = gdk_im_va_count (list); va_end (list); - + va_start (list, target); attr = gdk_im_va_to_nested (list, count); va_end (list); - + XSetICValues (private->xic, target, attr, NULL); - + g_free (attr); } @@ -3857,22 +3857,22 @@ gdk_ic_get_attr (GdkIC ic, const char *target, ...) XVaNestedList attr; GdkICPrivate *private; guint count; - + g_return_if_fail (ic != NULL); g_return_if_fail (target != NULL); - + private = (GdkICPrivate *) ic; - + va_start (list, target); count = gdk_im_va_count (list); va_end (list); - + va_start (list, target); attr = gdk_im_va_to_nested (list, count); va_end (list); - + XGetICValues (private->xic, target, attr, NULL); - + g_free (attr); } @@ -3884,21 +3884,21 @@ gdk_ic_get_events (GdkIC ic) glong bit; GdkICPrivate *private; gint i; - - /* From gdkwindow.c */ + + /* From gdkwindow.c */ extern int nevent_masks; extern int event_mask_table[]; - + g_return_val_if_fail (ic != NULL, 0); - + private = (GdkICPrivate *) ic; - + if (XGetICValues (private->xic, XNFilterEvents, &xmask, NULL) != NULL) { GDK_NOTE (XIM, g_warning ("Call to XGetICValues: %s failed", XNFilterEvents)); return 0; } - + mask = 0; for (i=0, bit=2; i < nevent_masks; i++, bit <<= 1) if (xmask & event_mask_table [i]) @@ -3906,7 +3906,7 @@ gdk_ic_get_events (GdkIC ic) mask |= bit; xmask &= ~ event_mask_table [i]; } - + if (xmask) g_warning ("ic requires events not supported by the application (%#04lx)", xmask); @@ -3919,17 +3919,17 @@ gdk_ic_cleanup (void) GList* node; gint destroyed; GdkICPrivate *private; - + destroyed = 0; for (node = xim_ic_list; node != NULL; node = node->next) { if (node->data) - { - private = (GdkICPrivate *) (node->data); - XDestroyIC (private->xic); - g_free (private); - destroyed++; - } + { + private = (GdkICPrivate *) (node->data); + XDestroyIC (private->xic); + g_free (private); + destroyed++; + } } #ifdef G_ENABLE_DEBUG if ((gdk_debug_flags & GDK_DEBUG_XIM) && destroyed > 0) @@ -4025,10 +4025,10 @@ _g_mbtowc (wchar_t *wstr, const char *str, size_t len) { static wchar_t wcs[MB_CUR_MAX + 1]; static gchar mbs[MB_CUR_MAX + 1]; - + wcs[0] = (wchar_t) NULL; mbs[0] = '\0'; - + /* The last argument isn't a mistake. The X locale code trims * the input string to the length of the output string! */ @@ -4037,13 +4037,13 @@ _g_mbtowc (wchar_t *wstr, const char *str, size_t len) return len; else if (wcs[0] == (wchar_t) NULL) return -1; - + len = _Xwctomb (mbs, wcs[0]); if (mbs[0] == '\0') return -1; if (wstr) *wstr = wcs[0]; - + return len; } @@ -4056,9 +4056,9 @@ gdk_dnd_drag_leave (Window dest) GdkEventDropLeave tev; int i; GdkWindowPrivate *wp; - + tev.u.allflags = 0; - + tev.u.flags.protocol_version = DND_PROTOCOL_VERSION; sev.xclient.type = ClientMessage; sev.xclient.window = dest; @@ -4070,8 +4070,8 @@ gdk_dnd_drag_leave (Window dest) wp = (GdkWindowPrivate *) gdk_dnd.drag_startwindows[i]; sev.xclient.data.l[0] = wp->xwindow; if (!gdk_send_xevent (dest, False, StructureNotifyMask, &sev)) - GDK_NOTE (DND, g_print("Sending XdeLeave to %#lx failed\n", - dest)); + GDK_NOTE (DND, g_message("Sending XdeLeave to %#lx failed", + dest)); wp->dnd_drag_accepted = 0; } } @@ -4088,14 +4088,14 @@ gdk_dnd_drag_end (Window dest, GdkWindowPrivate *wp; GdkEvent tev; int i; - + tev.dragrequest.type = GDK_DRAG_REQUEST; tev.dragrequest.drop_coords = coords; tev.dragrequest.requestor = dest; tev.dragrequest.u.allflags = 0; tev.dragrequest.u.flags.protocol_version = DND_PROTOCOL_VERSION; tev.dragrequest.isdrop = 1; - + for (i = 0; i < gdk_dnd.drag_numwindows; i++) { wp = (GdkWindowPrivate *) gdk_dnd.drag_startwindows[i]; @@ -4103,32 +4103,32 @@ gdk_dnd_drag_end (Window dest, { tev.dragrequest.window = (GdkWindow *) wp; tev.dragrequest.u.flags.delete_data = wp->dnd_drag_destructive_op; - tev.dragrequest.timestamp = gdk_dnd.last_drop_time; + tev.dragrequest.timestamp = gdk_dnd.last_drop_time; tev.dragrequest.data_type = - gdk_atom_name(wp->dnd_drag_data_type); - + gdk_atom_name(wp->dnd_drag_data_type); + gdk_event_put(&tev); } } } static GdkAtom -gdk_dnd_check_types (GdkWindow *window, - XEvent *xevent) +gdk_dnd_check_types (GdkWindow *window, + XEvent *xevent) { GdkWindowPrivate *wp = (GdkWindowPrivate *) window; int i, j; GdkEventDropEnter event; - + g_return_val_if_fail(window != NULL, 0); g_return_val_if_fail(xevent != NULL, 0); g_return_val_if_fail(xevent->type == ClientMessage, 0); g_return_val_if_fail(xevent->xclient.message_type == gdk_dnd.gdk_XdeEnter, 0); - + if(wp->dnd_drop_data_numtypesavail <= 0 || !wp->dnd_drop_data_typesavail) return 0; - + for (i = 2; i <= 4; i++) { for (j = 0; j < wp->dnd_drop_data_numtypesavail; j++) @@ -4137,7 +4137,7 @@ gdk_dnd_check_types (GdkWindow *window, return xevent->xclient.data.l[i]; } } - + /* Now we get the extended type list if it's available */ event.u.allflags = xevent->xclient.data.l[1]; if (event.u.flags.extended_typelist) @@ -4145,21 +4145,21 @@ gdk_dnd_check_types (GdkWindow *window, Atom *exttypes, realtype; gulong nitems, nbar; gint realfmt; - + if (XGetWindowProperty(gdk_display, xevent->xclient.data.l[0], gdk_dnd.gdk_XdeTypelist, 0L, LONG_MAX - 1, False, AnyPropertyType, &realtype, &realfmt, &nitems, &nbar, (unsigned char **) &exttypes) - != Success) + != Success) return 0; - + if (realfmt != (sizeof(Atom) * 8)) { g_warning("XdeTypelist property had format of %d instead of the expected %ld, on window %#lx\n", realfmt, (glong)sizeof(Atom) * 8, xevent->xclient.data.l[0]); return 0; } - + for (i = 0; i <= nitems; i++) { for (j = 0; j < wp->dnd_drop_data_numtypesavail; j++) @@ -4185,7 +4185,7 @@ gdk_print_atom (GdkAtom anatom) { gchar *tmpstr = NULL; tmpstr = (anatom!=None)?gdk_atom_name(anatom):"(none)"; - g_print("Atom %lu has name %s\n", anatom, tmpstr); + g_message("Atom %lu has name %s", anatom, tmpstr); if(tmpstr) g_free(tmpstr); } @@ -4195,9 +4195,9 @@ gdk_print_atom (GdkAtom anatom) * used only by below routine and itself */ static Window -getchildren (Display *dpy, - Window win, - Atom WM_STATE) +getchildren (Display *dpy, + Window win, + Atom WM_STATE) { Window root, parent, *children, inf = 0; Atom type = None; @@ -4205,10 +4205,10 @@ getchildren (Display *dpy, int format; unsigned long nitems, after; unsigned char *data; - + if (XQueryTree(dpy, win, &root, &parent, &children, &nchildren) == 0) return 0; - + for (i = 0; !inf && (i < nchildren); i++) { XGetWindowProperty (dpy, children[i], WM_STATE, 0, 0, False, @@ -4218,13 +4218,13 @@ getchildren (Display *dpy, inf = children[i]; XFree(data); } - + for (i = 0; !inf && (i < nchildren); i++) inf = getchildren (dpy, children[i], WM_STATE); - + if (children != None) XFree ((char *) children); - + return inf; } @@ -4234,8 +4234,8 @@ getchildren (Display *dpy, * modification of the XmuClientWindow() routine from X11R6.3 */ Window -gdk_get_client_window (Display *dpy, - Window win) +gdk_get_client_window (Display *dpy, + Window win) { Atom WM_STATE; Atom type = None; @@ -4243,20 +4243,20 @@ gdk_get_client_window (Display *dpy, unsigned long nitems, after; unsigned char *data; Window inf; - + if (win == 0) return DefaultRootWindow(dpy); - + if ((WM_STATE = XInternAtom (dpy, "WM_STATE", True)) == 0) return win; - + XGetWindowProperty (dpy, win, WM_STATE, 0, 0, False, AnyPropertyType, &type, &format, &nitems, &after, &data); if (type) return win; - + inf = getchildren (dpy, win, WM_STATE); - + if (inf == 0) return win; else @@ -4273,13 +4273,13 @@ gdk_drop_get_real_window (GdkWindow *w, GdkWindowPrivate *awin; GList *children; gint16 myx = *x, myy = *y; - + g_return_val_if_fail (w != NULL && x != NULL && y != NULL, NULL); - + myx = *x; myy = *y; - -descend: + + descend: for (children = gdk_window_get_children(retval); children && children->next; children = children->next) @@ -4295,10 +4295,10 @@ descend: goto descend; } } - + *x = myx; *y = myy; - + return retval; } #endif @@ -4311,9 +4311,9 @@ gdk_event_send_clientmessage_toall (GdkEvent *event) Window *ret_children, ret_root, ret_parent, curwin; unsigned int ret_nchildren; int i; - + g_return_if_fail(event != NULL); - + /* Set up our event to send, with the exception of its target window */ sev.xclient.type = ClientMessage; sev.xclient.display = gdk_display; @@ -4321,21 +4321,21 @@ gdk_event_send_clientmessage_toall (GdkEvent *event) sev.xclient.serial = CurrentTime; memcpy(&sev.xclient.data, &event->client.data, sizeof(sev.xclient.data)); sev.xclient.message_type = event->client.message_type; - + /* OK, we're all set, now let's find some windows to send this to */ if(XQueryTree(gdk_display, gdk_root_window, &ret_root, &ret_parent, &ret_children, &ret_nchildren) != True) return; - + /* foreach true child window of the root window, send an event to it */ for(i = 0; i < ret_nchildren; i++) { curwin = gdk_get_client_window(gdk_display, ret_children[i]); sev.xclient.window = curwin; if (!gdk_send_xevent (curwin, False, NoEventMask, &sev)) - GDK_NOTE (MISC, g_print("Gdk: Sending client message %ld to %#lx failed\n", - event->client.message_type, curwin)); + GDK_NOTE (MISC, g_message ("Sending client message %ld to %#lx failed", + event->client.message_type, curwin)); } - + XFree(ret_children); } @@ -4357,7 +4357,7 @@ gdk_send_xevent (Window window, gboolean propagate, glong event_mask, result = XSendEvent (gdk_display, window, propagate, event_mask, event_send); XSync (gdk_display, False); gdk_error_warnings = 1; - + return result && (gdk_error_code != -1); } @@ -4371,13 +4371,13 @@ gdkx_XConvertCase (KeySym symbol, KeySym *upper) { register KeySym sym = symbol; - + g_return_if_fail (lower != NULL); g_return_if_fail (upper != NULL); - + *lower = sym; *upper = sym; - + switch (sym >> 8) { #if defined (GDK_A) && defined (GDK_Ooblique) @@ -4472,7 +4472,7 @@ gdkx_XConvertCase (KeySym symbol, *upper += (GDK_Cyrillic_YU - GDK_Cyrillic_yu); break; #endif /* CYRILLIC */ - + #if defined (GDK_Greek_ALPHAaccent) && defined (GDK_Greek_finalsmallsigma) case 7: /* Greek */ /* Assume the KeySym is a legal value (ignore discontinuities) */ @@ -4494,7 +4494,7 @@ gdkx_XConvertCase (KeySym symbol, #endif gchar* -gdk_keyval_name (guint keyval) +gdk_keyval_name (guint keyval) { return XKeysymToString (keyval); } @@ -4503,18 +4503,18 @@ guint gdk_keyval_from_name (const gchar *keyval_name) { g_return_val_if_fail (keyval_name != NULL, 0); - + return XStringToKeysym (keyval_name); } guint -gdk_keyval_to_upper (guint keyval) +gdk_keyval_to_upper (guint keyval) { if (keyval) { KeySym lower_val = 0; KeySym upper_val = 0; - + XConvertCase (keyval, &lower_val, &upper_val); return upper_val; } @@ -4522,13 +4522,13 @@ gdk_keyval_to_upper (guint keyval) } guint -gdk_keyval_to_lower (guint keyval) +gdk_keyval_to_lower (guint keyval) { if (keyval) { KeySym lower_val = 0; KeySym upper_val = 0; - + XConvertCase (keyval, &lower_val, &upper_val); return lower_val; } @@ -4536,13 +4536,13 @@ gdk_keyval_to_lower (guint keyval) } gboolean -gdk_keyval_is_upper (guint keyval) +gdk_keyval_is_upper (guint keyval) { if (keyval) { KeySym lower_val = 0; KeySym upper_val = 0; - + XConvertCase (keyval, &lower_val, &upper_val); return upper_val == keyval; } @@ -4550,13 +4550,13 @@ gdk_keyval_is_upper (guint keyval) } gboolean -gdk_keyval_is_lower (guint keyval) +gdk_keyval_is_lower (guint keyval) { if (keyval) { KeySym lower_val = 0; KeySym upper_val = 0; - + XConvertCase (keyval, &lower_val, &upper_val); return lower_val == keyval; } diff --git a/gdk/gdkcc.c b/gdk/gdkcc.c index 12631a0772..df7c0a7833 100644 --- a/gdk/gdkcc.c +++ b/gdk/gdkcc.c @@ -69,7 +69,7 @@ static guint hash_color (gconstpointer key) { const GdkColor *color = key; - + return (color->red * 33023 + color->green * 30013 + color->blue * 27011); } @@ -79,7 +79,7 @@ compare_colors (gconstpointer a, { const GdkColor *aa = a; const GdkColor *bb = b; - + return ((aa->red == bb->red) && (aa->green == bb->green) && (aa->blue == bb->blue)); } @@ -108,20 +108,20 @@ my_x_query_colors (GdkColormap *colormap, { XColor *xcolors; gint i; - + xcolors = g_new (XColor, ncolors); for (i = 0; i < ncolors; i++) xcolors[i].pixel = colors[i].pixel; - + XQueryColors (gdk_display, GDK_COLORMAP_XCOLORMAP (colormap), xcolors, ncolors); - + for (i = 0; i < ncolors; i++) { colors[i].red = xcolors[i].red; colors[i].green = xcolors[i].green; colors[i].blue = xcolors[i].blue; } - + g_free (xcolors); } @@ -131,12 +131,12 @@ query_colors (GdkColorContext *cc) gint i; GdkColorContextPrivate *ccp = (GdkColorContextPrivate *) cc; cc->cmap = g_new (GdkColor, cc->num_colors); - + for (i = 0; i < cc->num_colors; i++) cc->cmap[i].pixel = cc->clut ? cc->clut[i] : ccp->std_cmap.base_pixel + i; - + my_x_query_colors (cc->colormap, cc->cmap, cc->num_colors); - + qsort (cc->cmap, cc->num_colors, sizeof (GdkColor), pixel_sort); } @@ -144,25 +144,25 @@ static void init_bw (GdkColorContext *cc) { GdkColor color; - + g_warning ("init_bw: failed to allocate colors, falling back to black and white"); - + cc->mode = GDK_CC_MODE_BW; - + color.red = color.green = color.blue = 0; if (!gdk_color_alloc (cc->colormap, &color)) cc->black_pixel = 0; else cc->black_pixel = color.pixel; - + color.red = color.green = color.blue = 0xffff; if (!gdk_color_alloc (cc->colormap, &color)) cc->white_pixel = cc->black_pixel ? 0 : 1; else cc->white_pixel = color.pixel; - + cc->num_colors = 2; } @@ -173,28 +173,28 @@ init_gray (GdkColorContext *cc) GdkColor *clrs, *cstart; gint i; gdouble dinc; - + cc->num_colors = GDK_VISUAL_XVISUAL (cc->visual)->map_entries; - + cc->clut = g_new (gulong, cc->num_colors); cstart = g_new (GdkColor, cc->num_colors); - -retrygray: - + + retrygray: + dinc = 65535.0 / (cc->num_colors - 1); - + clrs = cstart; - + for (i = 0; i < cc->num_colors; i++) { clrs->red = clrs->green = clrs->blue = dinc * i; - + if (!gdk_color_alloc (cc->colormap, clrs)) { gdk_colors_free (cc->colormap, cc->clut, i, 0); - + cc->num_colors /= 2; - + if (cc->num_colors > 1) goto retrygray; else @@ -206,12 +206,12 @@ retrygray: return; } } - + cc->clut[i] = clrs++->pixel; } - + g_free (cstart); - + /* XXX: is this the right thing to do? */ ccp->std_cmap.colormap = GDK_COLORMAP_XCOLORMAP (cc->colormap); ccp->std_cmap.base_pixel = 0; @@ -221,12 +221,12 @@ retrygray: ccp->std_cmap.red_mult = 1; ccp->std_cmap.green_mult = 0; ccp->std_cmap.blue_mult = 0; - + cc->white_pixel = WhitePixel (ccp->xdisplay, gdk_screen); cc->black_pixel = BlackPixel (ccp->xdisplay, gdk_screen); - + query_colors (cc); - + cc->mode = GDK_CC_MODE_MY_GRAY; } @@ -235,14 +235,14 @@ init_color (GdkColorContext *cc) { GdkColorContextPrivate *ccp = (GdkColorContextPrivate *) cc; gint cubeval; - + cubeval = 1; while ((cubeval * cubeval * cubeval) < GDK_VISUAL_XVISUAL (cc->visual)->map_entries) cubeval++; cubeval--; - + cc->num_colors = cubeval * cubeval * cubeval; - + ccp->std_cmap.red_max = cubeval - 1; ccp->std_cmap.green_max = cubeval - 1; ccp->std_cmap.blue_max = cubeval - 1; @@ -250,21 +250,21 @@ init_color (GdkColorContext *cc) ccp->std_cmap.green_mult = cubeval; ccp->std_cmap.blue_mult = 1; ccp->std_cmap.base_pixel = 0; - + cc->white_pixel = WhitePixel (ccp->xdisplay, gdk_screen); cc->black_pixel = BlackPixel (ccp->xdisplay, gdk_screen); cc->num_colors = DisplayCells (ccp->xdisplay, gdk_screen); - + /* a CLUT for storing allocated pixel indices */ - + cc->max_colors = cc->num_colors; cc->clut = g_new (gulong, cc->max_colors); - + for (cubeval = 0; cubeval < cc->max_colors; cubeval++) cc->clut[cubeval] = cubeval; - + query_colors (cc); - + cc->mode = GDK_CC_MODE_STD_CMAP; } @@ -274,66 +274,66 @@ init_true_color (GdkColorContext *cc) { GdkColorContextPrivate *ccp = (GdkColorContextPrivate *) cc; gulong rmask, gmask, bmask; - + cc->mode = GDK_CC_MODE_TRUE; - + /* Red */ - + rmask = cc->masks.red = cc->visual->red_mask; - + cc->shifts.red = 0; cc->bits.red = 0; - + while (!(rmask & 1)) { rmask >>= 1; cc->shifts.red++; } - + while (rmask & 1) { rmask >>= 1; cc->bits.red++; } - + /* Green */ - + gmask = cc->masks.green = cc->visual->green_mask; - + cc->shifts.green = 0; cc->bits.green = 0; - + while (!(gmask & 1)) { gmask >>= 1; cc->shifts.green++; } - + while (gmask & 1) { gmask >>= 1; cc->bits.green++; } - + /* Blue */ - + bmask = cc->masks.blue = cc->visual->blue_mask; - + cc->shifts.blue = 0; cc->bits.blue = 0; - + while (!(bmask & 1)) { bmask >>= 1; cc->shifts.blue++; } - + while (bmask & 1) { bmask >>= 1; cc->bits.blue++; } - + cc->num_colors = (cc->visual->red_mask | cc->visual->green_mask | cc->visual->blue_mask) + 1; cc->white_pixel = WhitePixel (ccp->xdisplay, gdk_screen); cc->black_pixel = BlackPixel (ccp->xdisplay, gdk_screen); @@ -349,49 +349,49 @@ init_direct_color (GdkColorContext *cc) gulong *gtable; gulong *btable; gdouble dinc; - + init_true_color (cc); /* for shift stuff */ - + rval = cc->visual->red_mask >> cc->shifts.red; gval = cc->visual->green_mask >> cc->shifts.green; bval = cc->visual->blue_mask >> cc->shifts.blue; - + rtable = g_new (gulong, rval + 1); gtable = g_new (gulong, gval + 1); btable = g_new (gulong, bval + 1); - + cc->max_entry = MAX (rval, gval); cc->max_entry = MAX (cc->max_entry, bval); - + cstart = g_new (GdkColor, cc->max_entry + 1); cc->clut = g_new (gulong, cc->max_entry + 1); - -retrydirect: - + + retrydirect: + for (n = 0; n < rval; n++) rtable[n] = rval ? (65535.0 / rval * n) : 0; - + for (n = 0; n < gval; n++) gtable[n] = gval ? (65535.0 / gval * n) : 0; - + for (n = 0; n < bval; n++) btable[n] = bval ? (65535.0 / bval * n) : 0; - + cc->max_entry = MAX (rval, gval); cc->max_entry = MAX (cc->max_entry, bval); - + count = 0; clrs = cstart; cc->num_colors = (rval + 1) * (gval + 1) * (bval + 1); - + for (n = 0; n < cc->max_entry; n++) { dinc = (double) n / cc->max_entry; - + clrs->red = rtable[(int) (dinc * rval)]; clrs->green = gtable[(int) (dinc * gval)]; clrs->blue = btable[(int) (dinc * bval)]; - + if (gdk_color_alloc (cc->colormap, clrs)) { cc->clut[count++] = clrs->pixel; @@ -400,25 +400,25 @@ retrydirect: else { gdk_colors_free (cc->colormap, cc->clut, count, 0); - + rval >>= 1; gval >>= 1; bval >>= 1; - + cc->masks.red = (cc->masks.red >> 1) & cc->visual->red_mask; cc->masks.green = (cc->masks.green >> 1) & cc->visual->green_mask; cc->masks.blue = (cc->masks.blue >> 1) & cc->visual->blue_mask; - + cc->shifts.red++; cc->shifts.green++; cc->shifts.blue++; - + cc->bits.red--; cc->bits.green--; cc->bits.blue--; - + cc->num_colors = (rval + 1) * (gval + 1) * (bval + 1); - + if (cc->num_colors >1) goto retrydirect; else @@ -430,13 +430,13 @@ retrydirect: } } } - + /* Update allocated color count; original num_colors is max_entry, which * is not necessarily the same as the really allocated number of colors. */ - + cc->num_colors = count; - + g_free (rtable); g_free (gtable); g_free (btable); @@ -447,7 +447,7 @@ static void init_palette (GdkColorContext *cc) { /* restore correct mode for this cc */ - + switch (cc->visual->type) { case GDK_VISUAL_STATIC_GRAY: @@ -457,40 +457,40 @@ init_palette (GdkColorContext *cc) else cc->mode = GDK_CC_MODE_MY_GRAY; break; - + case GDK_VISUAL_TRUE_COLOR: case GDK_VISUAL_DIRECT_COLOR: cc->mode = GDK_CC_MODE_TRUE; break; - + case GDK_VISUAL_STATIC_COLOR: case GDK_VISUAL_PSEUDO_COLOR: cc->mode = GDK_CC_MODE_STD_CMAP; break; - + default: cc->mode = GDK_CC_MODE_UNDEFINED; break; } - + /* previous palette */ - + if (cc->num_palette) g_free (cc->palette); - + if (cc->fast_dither) g_free (cc->fast_dither); - + /* clear hash table if present */ - + if (cc->color_hash) { /* XXX: quick-and-dirty way to remove everything */ - + g_hash_table_destroy (cc->color_hash); cc->color_hash = g_hash_table_new (hash_color, compare_colors); } - + cc->palette = NULL; cc->num_palette = 0; cc->fast_dither = NULL; @@ -505,10 +505,10 @@ gdk_color_context_new (GdkVisual *visual, GdkColorContext *cc; gint retry_count; GdkColormap *default_colormap; - + g_assert (visual != NULL); g_assert (colormap != NULL); - + ccp = g_new (GdkColorContextPrivate, 1); cc = (GdkColorContext *) ccp; ccp->xdisplay = gdk_display; @@ -518,16 +518,16 @@ gdk_color_context_new (GdkVisual *visual, cc->cmap = NULL; cc->mode = GDK_CC_MODE_UNDEFINED; cc->need_to_free_colormap = FALSE; - + cc->color_hash = NULL; cc->palette = NULL; cc->num_palette = 0; cc->fast_dither = NULL; - + default_colormap = gdk_colormap_get_system (); - + retry_count = 0; - + while (retry_count < 2) { /* Only create a private colormap if the visual found isn't equal @@ -535,66 +535,66 @@ gdk_color_context_new (GdkVisual *visual, * -or- if we are instructed to create a private colormap (which * never is the case for XmHTML). */ - + if (use_private_colormap || ((cc->visual != gdk_visual_get_system ()) /* default visual? */ && (GDK_COLORMAP_XCOLORMAP (colormap) == GDK_COLORMAP_XCOLORMAP (default_colormap)))) { g_warning ("gdk_color_context_new: non-default visual detected, " "using private colormap"); - + cc->colormap = gdk_colormap_new (cc->visual, FALSE); - + cc->need_to_free_colormap = (GDK_COLORMAP_XCOLORMAP (colormap) != GDK_COLORMAP_XCOLORMAP (default_colormap)); } - + switch (visual->type) { case GDK_VISUAL_STATIC_GRAY: case GDK_VISUAL_GRAYSCALE: GDK_NOTE (COLOR_CONTEXT, - g_print ("gdk_color_context_new: visual class is %s\n", - (visual->type == GDK_VISUAL_STATIC_GRAY) ? - "GDK_VISUAL_STATIC_GRAY" : - "GDK_VISUAL_GRAYSCALE")); - + g_message ("gdk_color_context_new: visual class is %s\n", + (visual->type == GDK_VISUAL_STATIC_GRAY) ? + "GDK_VISUAL_STATIC_GRAY" : + "GDK_VISUAL_GRAYSCALE")); + if (GDK_VISUAL_XVISUAL (cc->visual)->map_entries == 2) init_bw (cc); else init_gray (cc); - + break; - + case GDK_VISUAL_TRUE_COLOR: /* shifts */ GDK_NOTE (COLOR_CONTEXT, - g_print ("gdk_color_context_new: visual class is GDK_VISUAL_TRUE_COLOR\n")); - + g_message ("gdk_color_context_new: visual class is GDK_VISUAL_TRUE_COLOR\n")); + init_true_color (cc); break; - + case GDK_VISUAL_DIRECT_COLOR: /* shifts and fake CLUT */ GDK_NOTE (COLOR_CONTEXT, - g_print ("gdk_color_context_new: visual class is GDK_VISUAL_DIRECT_COLOR\n")); - + g_message ("gdk_color_context_new: visual class is GDK_VISUAL_DIRECT_COLOR\n")); + init_direct_color (cc); break; - + case GDK_VISUAL_STATIC_COLOR: case GDK_VISUAL_PSEUDO_COLOR: GDK_NOTE (COLOR_CONTEXT, - g_print ("gdk_color_context_new: visual class is %s\n", - (visual->type == GDK_VISUAL_STATIC_COLOR) ? - "GDK_VISUAL_STATIC_COLOR" : - "GDK_VISUAL_PSEUDO_COLOR")); - + g_message ("gdk_color_context_new: visual class is %s\n", + (visual->type == GDK_VISUAL_STATIC_COLOR) ? + "GDK_VISUAL_STATIC_COLOR" : + "GDK_VISUAL_PSEUDO_COLOR")); + init_color (cc); break; - + default: g_assert_not_reached (); } - + if ((cc->mode == GDK_CC_MODE_BW) && (cc->visual->depth > 1)) { use_private_colormap = TRUE; @@ -603,20 +603,20 @@ gdk_color_context_new (GdkVisual *visual, else break; } - + /* no. of colors allocated yet */ - + cc->num_allocated = 0; - + GDK_NOTE (COLOR_CONTEXT, - g_print ("gdk_color_context_new: screen depth is %i, no. of colors is %i\n", - cc->visual->depth, cc->num_colors)); - + g_message ("gdk_color_context_new: screen depth is %i, no. of colors is %i\n", + cc->visual->depth, cc->num_colors)); + /* check if we need to initialize a hash table */ - + if ((cc->mode == GDK_CC_MODE_STD_CMAP) || (cc->mode == GDK_CC_MODE_UNDEFINED)) cc->color_hash = g_hash_table_new (hash_color, compare_colors); - + return (GdkColorContext *) cc; } @@ -626,10 +626,10 @@ gdk_color_context_new_mono (GdkVisual *visual, { GdkColorContextPrivate *ccp; GdkColorContext *cc; - + g_assert (visual != NULL); g_assert (colormap != NULL); - + cc = g_new (GdkColorContext, 1); ccp = (GdkColorContextPrivate *) cc; ccp->xdisplay = gdk_display; @@ -639,9 +639,9 @@ gdk_color_context_new_mono (GdkVisual *visual, cc->cmap = NULL; cc->mode = GDK_CC_MODE_UNDEFINED; cc->need_to_free_colormap = FALSE; - + init_bw (cc); - + return (GdkColorContext *) cc; } @@ -651,7 +651,7 @@ void gdk_color_context_free (GdkColorContext *cc) { g_assert (cc != NULL); - + if ((cc->visual->type == GDK_VISUAL_STATIC_COLOR) || (cc->visual->type == GDK_VISUAL_PSEUDO_COLOR)) { @@ -663,17 +663,17 @@ gdk_color_context_free (GdkColorContext *cc) gdk_colors_free (cc->colormap, cc->clut, cc->num_colors, 0); g_free (cc->clut); } - + if (cc->cmap != NULL) g_free (cc->cmap); - + if (cc->need_to_free_colormap) gdk_colormap_unref (cc->colormap); - + /* free any palette that has been associated with this GdkColorContext */ - + init_palette (cc); - + if (cc->color_hash) { g_hash_table_foreach (cc->color_hash, @@ -681,7 +681,7 @@ gdk_color_context_free (GdkColorContext *cc) NULL); g_hash_table_destroy (cc->color_hash); } - + g_free (cc); } @@ -695,146 +695,146 @@ gdk_color_context_get_pixel (GdkColorContext *cc, GdkColorContextPrivate *ccp = (GdkColorContextPrivate *) cc; g_assert (cc != NULL); g_assert (failed != NULL); - + *failed = FALSE; - + switch (cc->mode) { case GDK_CC_MODE_BW: - { - gdouble value; - - value = (red / 65535.0 * 0.30 - + green / 65535.0 * 0.59 - + blue / 65535.0 * 0.11); - - if (value > 0.5) - return cc->white_pixel; - - return cc->black_pixel; - } - + { + gdouble value; + + value = (red / 65535.0 * 0.30 + + green / 65535.0 * 0.59 + + blue / 65535.0 * 0.11); + + if (value > 0.5) + return cc->white_pixel; + + return cc->black_pixel; + } + case GDK_CC_MODE_MY_GRAY: - { - gulong ired, igreen, iblue; - - red = red * 0.30 + green * 0.59 + blue * 0.11; - green = 0; - blue = 0; - - if ((ired = red * (ccp->std_cmap.red_max + 1) / 0xffff) > ccp->std_cmap.red_max) - ired = ccp->std_cmap.red_max; - - ired *= ccp->std_cmap.red_mult; - - if ((igreen = green * (ccp->std_cmap.green_max + 1) / 0xffff) > ccp->std_cmap.green_max) - igreen = ccp->std_cmap.green_max; - - igreen *= ccp->std_cmap.green_mult; - - if ((iblue = blue * (ccp->std_cmap.blue_max + 1) / 0xffff) > ccp->std_cmap.blue_max) - iblue = ccp->std_cmap.blue_max; - - iblue *= ccp->std_cmap.blue_mult; - - if (cc->clut != NULL) - return cc->clut[ccp->std_cmap.base_pixel + ired + igreen + iblue]; - - return ccp->std_cmap.base_pixel + ired + igreen + iblue; - } - + { + gulong ired, igreen, iblue; + + red = red * 0.30 + green * 0.59 + blue * 0.11; + green = 0; + blue = 0; + + if ((ired = red * (ccp->std_cmap.red_max + 1) / 0xffff) > ccp->std_cmap.red_max) + ired = ccp->std_cmap.red_max; + + ired *= ccp->std_cmap.red_mult; + + if ((igreen = green * (ccp->std_cmap.green_max + 1) / 0xffff) > ccp->std_cmap.green_max) + igreen = ccp->std_cmap.green_max; + + igreen *= ccp->std_cmap.green_mult; + + if ((iblue = blue * (ccp->std_cmap.blue_max + 1) / 0xffff) > ccp->std_cmap.blue_max) + iblue = ccp->std_cmap.blue_max; + + iblue *= ccp->std_cmap.blue_mult; + + if (cc->clut != NULL) + return cc->clut[ccp->std_cmap.base_pixel + ired + igreen + iblue]; + + return ccp->std_cmap.base_pixel + ired + igreen + iblue; + } + case GDK_CC_MODE_TRUE: - { - gulong ired, igreen, iblue; - - if (cc->clut == NULL) - { - red >>= 16 - cc->bits.red; - green >>= 16 - cc->bits.green; - blue >>= 16 - cc->bits.blue; - - ired = (red << cc->shifts.red) & cc->masks.red; - igreen = (green << cc->shifts.green) & cc->masks.green; - iblue = (blue << cc->shifts.blue) & cc->masks.blue; - - return ired | igreen | iblue; - } - - ired = cc->clut[red * cc->max_entry / 65535] & cc->masks.red; - igreen = cc->clut[green * cc->max_entry / 65535] & cc->masks.green; - iblue = cc->clut[blue * cc->max_entry / 65535] & cc->masks.blue; - - return ired | igreen | iblue; - } - + { + gulong ired, igreen, iblue; + + if (cc->clut == NULL) + { + red >>= 16 - cc->bits.red; + green >>= 16 - cc->bits.green; + blue >>= 16 - cc->bits.blue; + + ired = (red << cc->shifts.red) & cc->masks.red; + igreen = (green << cc->shifts.green) & cc->masks.green; + iblue = (blue << cc->shifts.blue) & cc->masks.blue; + + return ired | igreen | iblue; + } + + ired = cc->clut[red * cc->max_entry / 65535] & cc->masks.red; + igreen = cc->clut[green * cc->max_entry / 65535] & cc->masks.green; + iblue = cc->clut[blue * cc->max_entry / 65535] & cc->masks.blue; + + return ired | igreen | iblue; + } + case GDK_CC_MODE_PALETTE: return gdk_color_context_get_pixel_from_palette (cc, &red, &green, &blue, failed); - + case GDK_CC_MODE_STD_CMAP: default: - { - GdkColor color; - GdkColor *result; - - color.red = red; - color.green = green; - color.blue = blue; - - result = g_hash_table_lookup (cc->color_hash, &color); - - if (!result) - { - color.red = red; - color.green = green; - color.blue = blue; - color.pixel = 0; - - if (!gdk_color_alloc (cc->colormap, &color)) - *failed = TRUE; - else - { - GdkColor *cnew; - - /* XXX: the following comment comes directly from - * XCC.c. I don't know if it is relevant for - * gdk_color_alloc() as it is for XAllocColor() - * - Federico - */ - /* - * I can't figure this out entirely, but it *is* possible - * that XAllocColor succeeds, even if the number of - * allocations we've made exceeds the number of available - * colors in the current colormap. And therefore it - * might be necessary for us to resize the CLUT. - */ - - if (cc->num_allocated == cc->max_colors) - { - cc->max_colors *= 2; - - GDK_NOTE (COLOR_CONTEXT, - g_print ("gdk_color_context_get_pixel: " - "resizing CLUT to %i entries\n", - cc->max_colors)); - - cc->clut = g_realloc (cc->clut, - cc->max_colors * sizeof (gulong)); - } - - /* Key and value are the same color structure */ - - cnew = g_new (GdkColor, 1); - *cnew = color; - g_hash_table_insert (cc->color_hash, cnew, cnew); - - cc->clut[cc->num_allocated] = color.pixel; - cc->num_allocated++; - return color.pixel; - } - } - - return result->pixel; - } + { + GdkColor color; + GdkColor *result; + + color.red = red; + color.green = green; + color.blue = blue; + + result = g_hash_table_lookup (cc->color_hash, &color); + + if (!result) + { + color.red = red; + color.green = green; + color.blue = blue; + color.pixel = 0; + + if (!gdk_color_alloc (cc->colormap, &color)) + *failed = TRUE; + else + { + GdkColor *cnew; + + /* XXX: the following comment comes directly from + * XCC.c. I don't know if it is relevant for + * gdk_color_alloc() as it is for XAllocColor() + * - Federico + */ + /* + * I can't figure this out entirely, but it *is* possible + * that XAllocColor succeeds, even if the number of + * allocations we've made exceeds the number of available + * colors in the current colormap. And therefore it + * might be necessary for us to resize the CLUT. + */ + + if (cc->num_allocated == cc->max_colors) + { + cc->max_colors *= 2; + + GDK_NOTE (COLOR_CONTEXT, + g_message ("gdk_color_context_get_pixel: " + "resizing CLUT to %i entries\n", + cc->max_colors)); + + cc->clut = g_realloc (cc->clut, + cc->max_colors * sizeof (gulong)); + } + + /* Key and value are the same color structure */ + + cnew = g_new (GdkColor, 1); + *cnew = color; + g_hash_table_insert (cc->color_hash, cnew, cnew); + + cc->clut[cc->num_allocated] = color.pixel; + cc->num_allocated++; + return color.pixel; + } + } + + return result->pixel; + } } } @@ -861,37 +861,37 @@ gdk_color_context_get_pixels (GdkColorContext *cc, g_assert (blues != NULL); g_assert (colors != NULL); g_assert (nallocated != NULL); - + memset (defs, 0, MAX_IMAGE_COLORS * sizeof (GdkColor)); memset (failed, 0, MAX_IMAGE_COLORS * sizeof (gint)); memset (allocated, 0, MAX_IMAGE_COLORS * sizeof (gint)); - + /* Will only have a value if used by the progressive image loader */ - + ncols = *nallocated; - + *nallocated = 0; - + /* First allocate all pixels */ - + for (i = 0; i < ncolors; i++) { /* colors[i] is only zero if the pixel at that location hasn't * been allocated yet. This is a sanity check required for proper * color allocation by the progressive image loader */ - + if (colors[i] == 0) { defs[i].red = reds[i]; defs[i].green = greens[i]; defs[i].blue = blues[i]; - + colors[i] = gdk_color_context_get_pixel (cc, reds[i], greens[i], blues[i], &bad_alloc); - + /* successfully allocated, store it */ - + if (!bad_alloc) { defs[i].pixel = colors[i]; @@ -901,114 +901,114 @@ gdk_color_context_get_pixels (GdkColorContext *cc, failed[nopen++] = i; } } - + *nallocated = ncols; - + /* all colors available, all done */ - + if ((ncols == ncolors) || (nopen == 0)) { GDK_NOTE (COLOR_CONTEXT, - g_print ("gdk_color_context_get_pixels: got all %i colors; " - "(%i colors allocated so far)\n", ncolors, cc->num_allocated)); - + g_message ("gdk_color_context_get_pixels: got all %i colors; " + "(%i colors allocated so far)\n", ncolors, cc->num_allocated)); + return; } - + /* The fun part. We now try to allocate the colors we couldn't allocate * directly. The first step will map a color onto its nearest color * that has been allocated (either by us or someone else). If any colors * remain unallocated, we map these onto the colors that we have allocated * ourselves. */ - + /* read up to MAX_IMAGE_COLORS colors of the current colormap */ - + cmapsize = MIN (cc->num_colors, MAX_IMAGE_COLORS); - + /* see if the colormap has any colors to read */ - + if (cmapsize < 0) { g_warning ("gdk_color_context_get_pixels: oops! no colors available, " "your images will look *really* ugly."); - + return; } - + #ifdef G_ENABLE_DEBUG exact_col = ncols; #endif - + /* initialize pixels */ - + for (i = 0; i < cmapsize; i++) { cmap[i].pixel = i; cmap[i].red = cmap[i].green = cmap[i].blue = 0; } - + /* read the colormap */ - + my_x_query_colors (cc->colormap, cmap, cmapsize); - + /* get a close match for any unallocated colors */ - + counter = nopen; nopen = 0; idx = 0; - + do { gint d, j, mdist, close, ri, gi, bi; gint rd, gd, bd; - + i = failed[idx]; - + mdist = 0x1000000; close = -1; - + /* Store these vals. Small performance increase as this skips three * indexing operations in the loop code. */ - + ri = reds[i]; gi = greens[i]; bi = blues[i]; - + /* Walk all colors in the colormap and see which one is the * closest. Uses plain least squares. */ - + for (j = 0; (j < cmapsize) && (mdist != 0); j++) { /* Don't replace these by shifts; the sign may get clobbered */ - + rd = (ri - cmap[j].red) / 256; gd = (gi - cmap[j].green) / 256; bd = (bi - cmap[j].blue) / 256; - + d = rd * rd + gd * gd + bd * bd; - + if (d < mdist) { close = j; mdist = d; } } - + if (close != -1) { rd = cmap[close].red; gd = cmap[close].green; bd = cmap[close].blue; - + /* allocate */ - + colors[i] = gdk_color_context_get_pixel (cc, rd, gd, bd, &bad_alloc); - + /* store */ - + if (!bad_alloc) { defs[i] = cmap[close]; @@ -1024,68 +1024,68 @@ gdk_color_context_get_pixels (GdkColorContext *cc, /* deal with in next stage if allocation failed */ } while (++idx < counter); - + *nallocated = ncols; - + /* This is the maximum no. of allocated colors. See also the nopen == 0 * note above. */ - + if ((ncols == ncolors) || (nopen == 0)) { GDK_NOTE (COLOR_CONTEXT, - g_print ("gdk_color_context_get_pixels: got %i colors, %i exact and " - "%i close (%i colors allocated so far)\n", - ncolors, exact_col, close_col, cc->num_allocated)); - + g_message ("gdk_color_context_get_pixels: got %i colors, %i exact and " + "%i close (%i colors allocated so far)\n", + ncolors, exact_col, close_col, cc->num_allocated)); + return; } - + /* Now map any remaining unallocated pixels into the colors we did get */ - + idx = 0; - + do { gint d, mdist, close, ri, gi, bi; gint j, rd, gd, bd; - + i = failed[idx]; - + mdist = 0x1000000; close = -1; - + /* store */ - + ri = reds[i]; gi = greens[i]; bi = blues[i]; - + /* search allocated colors */ - + for (j = 0; (j < ncols) && (mdist != 0); j++) { k = allocated[j]; - + /* Don't replace these by shifts; the sign may get clobbered */ - + rd = (ri - defs[k].red) / 256; gd = (gi - defs[k].green) / 256; bd = (bi - defs[k].blue) / 256; - + d = rd * rd + gd * gd + bd * bd; - + if (d < mdist) { close = k; mdist = d; } } - + if (close < 0) { /* too bad, map to black */ - + defs[i].pixel = cc->black_pixel; defs[i].red = defs[i].green = defs[i].blue = 0; #ifdef G_ENABLE_DEBUG @@ -1099,15 +1099,15 @@ gdk_color_context_get_pixels (GdkColorContext *cc, subst_col++; #endif } - + colors[i] = defs[i].pixel; } while (++idx < nopen); - + GDK_NOTE (COLOR_CONTEXT, - g_print ("gdk_color_context_get_pixels: got %i colors, %i exact, %i close, " - "%i substituted, %i to black (%i colors allocated so far)\n", - ncolors, exact_col, close_col, subst_col, black_col, cc->num_allocated)); + g_message ("gdk_color_context_get_pixels: got %i colors, %i exact, %i close, " + "%i substituted, %i to black (%i colors allocated so far)\n", + ncolors, exact_col, close_col, subst_col, black_col, cc->num_allocated)); } void @@ -1128,7 +1128,7 @@ gdk_color_context_get_pixels_incremental (GdkColorContext *cc, #ifdef G_ENABLE_DEBUG gint exact_col = 0, subst_col = 0, close_col = 0, black_col = 0; #endif - + g_assert (cc != NULL); g_assert (reds != NULL); g_assert (greens != NULL); @@ -1136,19 +1136,19 @@ gdk_color_context_get_pixels_incremental (GdkColorContext *cc, g_assert (used != NULL); g_assert (colors != NULL); g_assert (nallocated != NULL); - + memset (defs, 0, MAX_IMAGE_COLORS * sizeof (GdkColor)); memset (failed, 0, MAX_IMAGE_COLORS * sizeof (gint)); memset (allocated, 0, MAX_IMAGE_COLORS * sizeof (gint)); - + /* Will only have a value if used by the progressive image loader */ - + ncols = *nallocated; - + *nallocated = 0; - + /* First allocate all pixels */ - + for (i = 0; i < ncolors; i++) { /* used[i] is only -1 if the pixel at that location hasn't @@ -1157,7 +1157,7 @@ gdk_color_context_get_pixels_incremental (GdkColorContext *cc, * When colors[i] == 0 it indicates the slot is available for * allocation. */ - + if (used[i] != FALSE) { if (colors[i] == 0) @@ -1165,11 +1165,11 @@ gdk_color_context_get_pixels_incremental (GdkColorContext *cc, defs[i].red = reds[i]; defs[i].green = greens[i]; defs[i].blue = blues[i]; - + colors[i] = gdk_color_context_get_pixel (cc, reds[i], greens[i], blues[i], &bad_alloc); - + /* successfully allocated, store it */ - + if (!bad_alloc) { defs[i].pixel = colors[i]; @@ -1181,100 +1181,100 @@ gdk_color_context_get_pixels_incremental (GdkColorContext *cc, #ifdef DEBUG else GDK_NOTE (COLOR_CONTEXT, - g_print ("gdk_color_context_get_pixels_incremental: " - "pixel at slot %i already allocated, skipping\n", i)); + g_message ("gdk_color_context_get_pixels_incremental: " + "pixel at slot %i already allocated, skipping\n", i)); #endif } } - + *nallocated = ncols; - + if ((ncols == ncolors) || (nopen == 0)) { GDK_NOTE (COLOR_CONTEXT, - g_print ("gdk_color_context_get_pixels_incremental: got all %i colors " - "(%i colors allocated so far)\n", - ncolors, cc->num_allocated)); - + g_message ("gdk_color_context_get_pixels_incremental: got all %i colors " + "(%i colors allocated so far)\n", + ncolors, cc->num_allocated)); + return; } - + cmapsize = MIN (cc->num_colors, MAX_IMAGE_COLORS); - + if (cmapsize < 0) { g_warning ("gdk_color_context_get_pixels_incremental: oops! " "No colors available images will look *really* ugly."); return; } - + #ifdef G_ENABLE_DEBUG exact_col = ncols; #endif - + /* initialize pixels */ - + for (i = 0; i < cmapsize; i++) { cmap[i].pixel = i; cmap[i].red = cmap[i].green = cmap[i].blue = 0; } - + /* read */ - + my_x_query_colors (cc->colormap, cmap, cmapsize); - + /* now match any unallocated colors */ - + counter = nopen; nopen = 0; idx = 0; - + do { gint d, j, mdist, close, ri, gi, bi; gint rd, gd, bd; - + i = failed[idx]; - + mdist = 0x1000000; close = -1; - + /* store */ - + ri = reds[i]; gi = greens[i]; bi = blues[i]; - + for (j = 0; (j < cmapsize) && (mdist != 0); j++) { /* Don't replace these by shifts; the sign may get clobbered */ - + rd = (ri - cmap[j].red) / 256; gd = (gi - cmap[j].green) / 256; bd = (bi - cmap[j].blue) / 256; - + d = rd * rd + gd * gd + bd * bd; - + if (d < mdist) { close = j; mdist = d; } } - + if (close != -1) { rd = cmap[close].red; gd = cmap[close].green; bd = cmap[close].blue; - + /* allocate */ - + colors[i] = gdk_color_context_get_pixel (cc, rd, gd, bd, &bad_alloc); - + /* store */ - + if (!bad_alloc) { defs[i] = cmap[close]; @@ -1292,64 +1292,64 @@ gdk_color_context_get_pixels_incremental (GdkColorContext *cc, /* deal with in next stage if allocation failed */ } while (++idx < counter); - + *nallocated = ncols; - + if ((ncols == ncolors) || (nopen == 0)) { GDK_NOTE (COLOR_CONTEXT, - g_print ("gdk_color_context_get_pixels_incremental: " - "got %i colors, %i exact and %i close " - "(%i colors allocated so far)\n", - ncolors, exact_col, close_col, cc->num_allocated)); - + g_message ("gdk_color_context_get_pixels_incremental: " + "got %i colors, %i exact and %i close " + "(%i colors allocated so far)\n", + ncolors, exact_col, close_col, cc->num_allocated)); + return; } - + /* map remaining unallocated pixels into colors we did get */ - + idx = 0; - + do { gint d, mdist, close, ri, gi, bi; gint j, rd, gd, bd; - + i = failed[idx]; - + mdist = 0x1000000; close = -1; - + ri = reds[i]; gi = greens[i]; bi = blues[i]; - + /* search allocated colors */ - + for (j = 0; (j < ncols) && (mdist != 0); j++) { k = allocated[j]; - + /* downscale */ /* Don't replace these by shifts; the sign may get clobbered */ - + rd = (ri - defs[k].red) / 256; gd = (gi - defs[k].green) / 256; bd = (bi - defs[k].blue) / 256; - + d = rd * rd + gd * gd + bd * bd; - + if (d < mdist) { close = k; mdist = d; } } - + if (close < 0) { /* too bad, map to black */ - + defs[i].pixel = cc->black_pixel; defs[i].red = defs[i].green = defs[i].blue = 0; #ifdef G_ENABLE_DEBUG @@ -1363,16 +1363,16 @@ gdk_color_context_get_pixels_incremental (GdkColorContext *cc, subst_col++; #endif } - + colors[i] = defs[i].pixel; } while (++idx < nopen); - + GDK_NOTE (COLOR_CONTEXT, - g_print ("gdk_color_context_get_pixels_incremental: " - "got %i colors, %i exact, %i close, %i substituted, %i to black " - "(%i colors allocated so far)\n", - ncolors, exact_col, close_col, subst_col, black_col, cc->num_allocated)); + g_message ("gdk_color_context_get_pixels_incremental: " + "got %i colors, %i exact, %i close, %i substituted, %i to black " + "(%i colors allocated so far)\n", + ncolors, exact_col, close_col, subst_col, black_col, cc->num_allocated)); } gint @@ -1389,10 +1389,10 @@ gdk_color_context_query_colors (GdkColorContext *cc, { gint i; GdkColor *tc; - + g_assert (cc != NULL); g_assert (colors != NULL); - + switch (cc->mode) { case GDK_CC_MODE_BW: @@ -1404,7 +1404,7 @@ gdk_color_context_query_colors (GdkColorContext *cc, tc->red = tc->green = tc->blue = 0; } break; - + case GDK_CC_MODE_TRUE: if (cc->clut == NULL) for (i = 0, tc = colors; i < num_colors; i++, tc++) @@ -1419,7 +1419,7 @@ gdk_color_context_query_colors (GdkColorContext *cc, return 1; } break; - + case GDK_CC_MODE_STD_CMAP: default: if (cc->cmap == NULL) @@ -1431,17 +1431,17 @@ gdk_color_context_query_colors (GdkColorContext *cc, { gint first, last, half; gulong half_pixel; - + for (i = 0, tc = colors; i < num_colors; i++) { first = 0; last = cc->num_colors - 1; - + while (first <= last) { half = (first + last) / 2; half_pixel = cc->cmap[half].pixel; - + if (tc->pixel == half_pixel) { tc->red = cc->cmap[half].red; @@ -1473,94 +1473,94 @@ gdk_color_context_add_palette (GdkColorContext *cc, gint i, j, erg; gushort r, g, b; gulong pixel[1]; - + g_assert (cc != NULL); - + /* initialize this palette (will also erase previous palette as well) */ - + init_palette (cc); - + /* restore previous mode if we aren't adding a new palette */ - + if (num_palette == 0) { /* GDK_CC_MODE_STD_CMAP uses a hash table, so we'd better initialize one */ - + /* XXX: here, the hash table is already initialized */ - + return 0; } - + /* Initialize a hash table for this palette (we need one for allocating * the pixels in the palette using the current settings) */ - + if (cc->color_hash == NULL) cc->color_hash = g_hash_table_new (hash_color, compare_colors); - + /* copy incoming palette */ - + cc->palette = g_new0(GdkColor, num_palette); - + j = 0; - + for (i = 0; i < num_palette; i++) { erg = 0; pixel[0] = 0; - + /* try to allocate this color */ - + r = palette[i].red; g = palette[i].green; b = palette[i].blue; - + gdk_color_context_get_pixels (cc, &r, &g, &b, 1, pixel, &erg); - + /* only store if we succeed */ - + if (erg) { /* store in palette */ - + cc->palette[j].red = r; cc->palette[j].green = g; cc->palette[j].blue = b; cc->palette[j].pixel = pixel[0]; - + /* move to next slot */ - + j++; } } - + /* resize to fit */ - + if (j != num_palette) cc->palette = g_realloc (cc->palette, j * sizeof (GdkColor)); - + /* clear the hash table, we don't use it when dithering */ - + if (cc->color_hash) { g_hash_table_destroy (cc->color_hash); cc->color_hash = NULL; } - + /* store real palette size */ - + cc->num_palette = j; - + /* switch to palette mode */ - + cc->mode = GDK_CC_MODE_PALETTE; - + /* sort palette */ - + qsort (cc->palette, cc->num_palette, sizeof (GdkColor), pixel_sort); - + cc->fast_dither = NULL; - + return j; } @@ -1569,17 +1569,17 @@ gdk_color_context_init_dither (GdkColorContext *cc) { gint rr, gg, bb, err, erg, erb; gint success = FALSE; - + g_assert (cc != NULL); - + /* now we can initialize the fast dither matrix */ - + if (cc->fast_dither == NULL) cc->fast_dither = g_new (GdkColorContextDither, 1); - + /* Fill it. We ignore unsuccessful allocations, they are just mapped * to black instead */ - + for (rr = 0; rr < 32; rr++) for (gg = 0; gg < 32; gg++) for (bb = 0; bb < 32; bb++) @@ -1587,7 +1587,7 @@ gdk_color_context_init_dither (GdkColorContext *cc) err = (rr << 3) | (rr >> 2); erg = (gg << 3) | (gg >> 2); erb = (bb << 3) | (bb >> 2); - + cc->fast_dither->fast_rgb[rr][gg][bb] = gdk_color_context_get_index_from_palette (cc, &err, &erg, &erb, &success); cc->fast_dither->fast_err[rr][gg][bb] = err; @@ -1600,10 +1600,10 @@ void gdk_color_context_free_dither (GdkColorContext *cc) { g_assert (cc != NULL); - + if (cc->fast_dither) g_free (cc->fast_dither); - + cc->fast_dither = NULL; } @@ -1619,23 +1619,23 @@ gdk_color_context_get_pixel_from_palette (GdkColorContext *cc, gint mindif = 0x7fffffff; gint err = 0, erg = 0, erb = 0; gint i; - + g_assert (cc != NULL); g_assert (red != NULL); g_assert (green != NULL); g_assert (blue != NULL); g_assert (failed != NULL); - + *failed = FALSE; - + for (i = 0; i < cc->num_palette; i++) { dr = *red - cc->palette[i].red; dg = *green - cc->palette[i].green; db = *blue - cc->palette[i].blue; - + dif = dr * dr + dg * dg + db * db; - + if (dif < mindif) { mindif = dif; @@ -1644,14 +1644,14 @@ gdk_color_context_get_pixel_from_palette (GdkColorContext *cc, err = dr; erg = dg; erb = db; - + if (mindif == 0) break; } } - + /* we failed to map onto a color */ - + if (j == -1) *failed = TRUE; else @@ -1660,7 +1660,7 @@ gdk_color_context_get_pixel_from_palette (GdkColorContext *cc, *green = ABS (erg); *blue = ABS (erb); } - + return pixel; } @@ -1675,23 +1675,23 @@ gdk_color_context_get_index_from_palette (GdkColorContext *cc, gint mindif = 0x7fffffff; gint err = 0, erg = 0, erb = 0; gint i; - + g_assert (cc != NULL); g_assert (red != NULL); g_assert (green != NULL); g_assert (blue != NULL); g_assert (failed != NULL); - + *failed = FALSE; - + for (i = 0; i < cc->num_palette; i++) { dr = *red - cc->palette[i].red; dg = *green - cc->palette[i].green; db = *blue - cc->palette[i].blue; - + dif = dr * dr + dg * dg + db * db; - + if (dif < mindif) { mindif = dif; @@ -1699,14 +1699,14 @@ gdk_color_context_get_index_from_palette (GdkColorContext *cc, err = dr; erg = dg; erb = db; - + if (mindif == 0) break; } } - + /* we failed to map onto a color */ - + if (j == -1) { *failed = TRUE; @@ -1715,11 +1715,11 @@ gdk_color_context_get_index_from_palette (GdkColorContext *cc, else { /* return error fractions */ - + *red = err; *green = erg; *blue = erb; } - + return j; } diff --git a/gdk/gdkdnd.c b/gdk/gdkdnd.c index 6a74022c55..331aad7ef7 100644 --- a/gdk/gdkdnd.c +++ b/gdk/gdkdnd.c @@ -1,3 +1,21 @@ +/* GDK - The GIMP Drawing Kit + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ #include <X11/Xlib.h> #include <X11/Xatom.h> #include <string.h> @@ -12,7 +30,7 @@ gdk_dnd_set_drag_cursors(GdkCursor *default_cursor, GdkCursor *goahead_cursor) gdk_dnd.c->gdk_cursor_dragdefault = ((GdkCursorPrivate *)default_cursor)->xcursor; gdk_dnd.c->gdk_cursor_dragok = ((GdkCursorPrivate *)goahead_cursor)->xcursor; - + if(gdk_dnd.dnd_grabbed) { if(gdk_dnd.c->drag_pm_default) @@ -42,7 +60,7 @@ gdk_dnd_set_drag_shape(GdkWindow *default_pixmapwin, GdkPoint *goahead_hotspot) { g_return_if_fail(default_pixmapwin != NULL); - + g_list_free(gdk_dnd.c->xids); gdk_dnd.c->xids = NULL; if(gdk_dnd.c->drag_pm_default) { @@ -54,9 +72,9 @@ gdk_dnd_set_drag_shape(GdkWindow *default_pixmapwin, gdk_window_hide(gdk_dnd.c->drag_pm_ok); gdk_window_unref(gdk_dnd.c->drag_pm_ok); } - + gdk_dnd.c->drag_pm_ok = NULL; - + gdk_window_ref(default_pixmapwin); gdk_dnd.c->drag_pm_default = default_pixmapwin; gdk_dnd.c->default_hotspot = *default_hotspot; @@ -68,7 +86,7 @@ gdk_dnd_set_drag_shape(GdkWindow *default_pixmapwin, gdk_dnd.c->drag_pm_ok = goahead_pixmapwin; gdk_dnd.c->ok_hotspot = *goahead_hotspot; } - + if(gdk_dnd.dnd_grabbed) { gdk_dnd_display_drag_cursor(-1, -1, @@ -90,7 +108,7 @@ gdk_dnd_display_drag_cursor(gint x, gint y, gboolean drag_ok, { if(!gdk_dnd.dnd_grabbed) return; - + if(gdk_dnd.c->drag_pm_default) { /* We're doing pixmaps here... */ @@ -99,29 +117,29 @@ gdk_dnd_display_drag_cursor(gint x, gint y, gboolean drag_ok, gint itmp; guint masktmp; Window wtmp; - + if(x == -2 && y == -2) /* Hide the cursors */ { gdk_window_hide(gdk_dnd.c->drag_pm_ok); gdk_window_hide(gdk_dnd.c->drag_pm_default); - GDK_NOTE(DND, g_print("Hiding both drag cursors\n")); + GDK_NOTE(DND, g_message("Hiding both drag cursors\n")); return; } - + if(x == -1 && y == -1) /* We're supposed to find it out for ourselves */ XQueryPointer(gdk_display, gdk_root_window, &wtmp, &wtmp, &x, &y, &itmp, &itmp, &masktmp); - + if(drag_ok) { - GDK_NOTE(DND, g_print("Switching to drag_ok cursor\n")); + GDK_NOTE(DND, g_message("Switching to drag_ok cursor\n")); mypix = gdk_dnd.c->drag_pm_ok; opix = gdk_dnd.c->drag_pm_default; myhotspot = &gdk_dnd.c->ok_hotspot; } else { - GDK_NOTE(DND, g_print("Switching to drag_default cursor\n")); + GDK_NOTE(DND, g_message("Switching to drag_default cursor\n")); mypix = gdk_dnd.c->drag_pm_default; opix = gdk_dnd.c->drag_pm_ok; myhotspot = &gdk_dnd.c->default_hotspot; @@ -129,7 +147,7 @@ gdk_dnd_display_drag_cursor(gint x, gint y, gboolean drag_ok, gdk_window_move(mypix, x - myhotspot->x, y - myhotspot->y); if(change_made) { - GDK_NOTE(DND, g_print("Cursors switched, hide & show\n")); + GDK_NOTE(DND, g_message("Cursors switched, hide & show\n")); gdk_window_hide(opix); } gdk_window_move(mypix, x - myhotspot->x, y - myhotspot->y); diff --git a/gdk/gdkfont.c b/gdk/gdkfont.c index 1b37930a73..cc1274a0d6 100644 --- a/gdk/gdkfont.c +++ b/gdk/gdkfont.c @@ -72,9 +72,9 @@ gdk_fontset_load (gchar *fontset_name) if (missing_charset_count) { gint i; - g_print ("Missing charsets in FontSet creation\n"); + g_message ("Missing charsets in FontSet creation\n"); for (i=0;i<missing_charset_count;i++) - g_print (" %s\n", missing_charset_list[i]); + g_message (" %s\n", missing_charset_list[i]); XFreeStringList (missing_charset_list); } diff --git a/gdk/gdkvisual.c b/gdk/gdkvisual.c index e7bf1648cc..693020ef61 100644 --- a/gdk/gdkvisual.c +++ b/gdk/gdkvisual.c @@ -211,9 +211,9 @@ gdk_visual_init (void) #ifdef G_ENABLE_DEBUG if (gdk_debug_flags & GDK_DEBUG_MISC) for (i = 0; i < nvisuals; i++) - g_print ("Gdk: visual: %s: %d\n", - visual_names[visuals[i].visual.type], - visuals[i].visual.depth); + g_message ("visual: %s: %d", + visual_names[visuals[i].visual.type], + visuals[i].visual.depth); #endif /* G_ENABLE_DEBUG */ navailable_depths = 0; diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c index 5c1feb2e3a..8c8623d4b0 100644 --- a/gdk/gdkwindow.c +++ b/gdk/gdkwindow.c @@ -407,7 +407,7 @@ gdk_window_new (GdkWindow *parent, (private->colormap != gdk_colormap_get_system ()) && (private->colormap != gdk_window_get_colormap (gdk_window_get_toplevel (window)))) { - GDK_NOTE (MISC, g_print ("adding colormap window\n")); + GDK_NOTE (MISC, g_message ("adding colormap window\n")); gdk_window_add_colormap_windows (window); } @@ -1771,7 +1771,7 @@ gdk_window_dnd_data_set (GdkWindow *window, data_numbytes); tmp = gdk_atom_name(window_private->dnd_drag_data_type); #ifdef DEBUG_DND - g_print("DnD type %s on window %ld\n", tmp, window_private->xwindow); + g_message("DnD type %s on window %ld\n", tmp, window_private->xwindow); #endif g_free(tmp); @@ -1801,9 +1801,8 @@ gdk_window_dnd_data_set (GdkWindow *window, if (!gdk_send_xevent (event->dragrequest.requestor, False, StructureNotifyMask, &sev)) - GDK_NOTE (DND, g_print("Sending XdeDataAvailable to %#x failed\n", - event->dragrequest.requestor)); - + GDK_NOTE (DND, g_message("Sending XdeDataAvailable to %#x failed\n", + event->dragrequest.requestor)); } void diff --git a/gdk/x11/gdkcc-x11.c b/gdk/x11/gdkcc-x11.c index 12631a0772..df7c0a7833 100644 --- a/gdk/x11/gdkcc-x11.c +++ b/gdk/x11/gdkcc-x11.c @@ -69,7 +69,7 @@ static guint hash_color (gconstpointer key) { const GdkColor *color = key; - + return (color->red * 33023 + color->green * 30013 + color->blue * 27011); } @@ -79,7 +79,7 @@ compare_colors (gconstpointer a, { const GdkColor *aa = a; const GdkColor *bb = b; - + return ((aa->red == bb->red) && (aa->green == bb->green) && (aa->blue == bb->blue)); } @@ -108,20 +108,20 @@ my_x_query_colors (GdkColormap *colormap, { XColor *xcolors; gint i; - + xcolors = g_new (XColor, ncolors); for (i = 0; i < ncolors; i++) xcolors[i].pixel = colors[i].pixel; - + XQueryColors (gdk_display, GDK_COLORMAP_XCOLORMAP (colormap), xcolors, ncolors); - + for (i = 0; i < ncolors; i++) { colors[i].red = xcolors[i].red; colors[i].green = xcolors[i].green; colors[i].blue = xcolors[i].blue; } - + g_free (xcolors); } @@ -131,12 +131,12 @@ query_colors (GdkColorContext *cc) gint i; GdkColorContextPrivate *ccp = (GdkColorContextPrivate *) cc; cc->cmap = g_new (GdkColor, cc->num_colors); - + for (i = 0; i < cc->num_colors; i++) cc->cmap[i].pixel = cc->clut ? cc->clut[i] : ccp->std_cmap.base_pixel + i; - + my_x_query_colors (cc->colormap, cc->cmap, cc->num_colors); - + qsort (cc->cmap, cc->num_colors, sizeof (GdkColor), pixel_sort); } @@ -144,25 +144,25 @@ static void init_bw (GdkColorContext *cc) { GdkColor color; - + g_warning ("init_bw: failed to allocate colors, falling back to black and white"); - + cc->mode = GDK_CC_MODE_BW; - + color.red = color.green = color.blue = 0; if (!gdk_color_alloc (cc->colormap, &color)) cc->black_pixel = 0; else cc->black_pixel = color.pixel; - + color.red = color.green = color.blue = 0xffff; if (!gdk_color_alloc (cc->colormap, &color)) cc->white_pixel = cc->black_pixel ? 0 : 1; else cc->white_pixel = color.pixel; - + cc->num_colors = 2; } @@ -173,28 +173,28 @@ init_gray (GdkColorContext *cc) GdkColor *clrs, *cstart; gint i; gdouble dinc; - + cc->num_colors = GDK_VISUAL_XVISUAL (cc->visual)->map_entries; - + cc->clut = g_new (gulong, cc->num_colors); cstart = g_new (GdkColor, cc->num_colors); - -retrygray: - + + retrygray: + dinc = 65535.0 / (cc->num_colors - 1); - + clrs = cstart; - + for (i = 0; i < cc->num_colors; i++) { clrs->red = clrs->green = clrs->blue = dinc * i; - + if (!gdk_color_alloc (cc->colormap, clrs)) { gdk_colors_free (cc->colormap, cc->clut, i, 0); - + cc->num_colors /= 2; - + if (cc->num_colors > 1) goto retrygray; else @@ -206,12 +206,12 @@ retrygray: return; } } - + cc->clut[i] = clrs++->pixel; } - + g_free (cstart); - + /* XXX: is this the right thing to do? */ ccp->std_cmap.colormap = GDK_COLORMAP_XCOLORMAP (cc->colormap); ccp->std_cmap.base_pixel = 0; @@ -221,12 +221,12 @@ retrygray: ccp->std_cmap.red_mult = 1; ccp->std_cmap.green_mult = 0; ccp->std_cmap.blue_mult = 0; - + cc->white_pixel = WhitePixel (ccp->xdisplay, gdk_screen); cc->black_pixel = BlackPixel (ccp->xdisplay, gdk_screen); - + query_colors (cc); - + cc->mode = GDK_CC_MODE_MY_GRAY; } @@ -235,14 +235,14 @@ init_color (GdkColorContext *cc) { GdkColorContextPrivate *ccp = (GdkColorContextPrivate *) cc; gint cubeval; - + cubeval = 1; while ((cubeval * cubeval * cubeval) < GDK_VISUAL_XVISUAL (cc->visual)->map_entries) cubeval++; cubeval--; - + cc->num_colors = cubeval * cubeval * cubeval; - + ccp->std_cmap.red_max = cubeval - 1; ccp->std_cmap.green_max = cubeval - 1; ccp->std_cmap.blue_max = cubeval - 1; @@ -250,21 +250,21 @@ init_color (GdkColorContext *cc) ccp->std_cmap.green_mult = cubeval; ccp->std_cmap.blue_mult = 1; ccp->std_cmap.base_pixel = 0; - + cc->white_pixel = WhitePixel (ccp->xdisplay, gdk_screen); cc->black_pixel = BlackPixel (ccp->xdisplay, gdk_screen); cc->num_colors = DisplayCells (ccp->xdisplay, gdk_screen); - + /* a CLUT for storing allocated pixel indices */ - + cc->max_colors = cc->num_colors; cc->clut = g_new (gulong, cc->max_colors); - + for (cubeval = 0; cubeval < cc->max_colors; cubeval++) cc->clut[cubeval] = cubeval; - + query_colors (cc); - + cc->mode = GDK_CC_MODE_STD_CMAP; } @@ -274,66 +274,66 @@ init_true_color (GdkColorContext *cc) { GdkColorContextPrivate *ccp = (GdkColorContextPrivate *) cc; gulong rmask, gmask, bmask; - + cc->mode = GDK_CC_MODE_TRUE; - + /* Red */ - + rmask = cc->masks.red = cc->visual->red_mask; - + cc->shifts.red = 0; cc->bits.red = 0; - + while (!(rmask & 1)) { rmask >>= 1; cc->shifts.red++; } - + while (rmask & 1) { rmask >>= 1; cc->bits.red++; } - + /* Green */ - + gmask = cc->masks.green = cc->visual->green_mask; - + cc->shifts.green = 0; cc->bits.green = 0; - + while (!(gmask & 1)) { gmask >>= 1; cc->shifts.green++; } - + while (gmask & 1) { gmask >>= 1; cc->bits.green++; } - + /* Blue */ - + bmask = cc->masks.blue = cc->visual->blue_mask; - + cc->shifts.blue = 0; cc->bits.blue = 0; - + while (!(bmask & 1)) { bmask >>= 1; cc->shifts.blue++; } - + while (bmask & 1) { bmask >>= 1; cc->bits.blue++; } - + cc->num_colors = (cc->visual->red_mask | cc->visual->green_mask | cc->visual->blue_mask) + 1; cc->white_pixel = WhitePixel (ccp->xdisplay, gdk_screen); cc->black_pixel = BlackPixel (ccp->xdisplay, gdk_screen); @@ -349,49 +349,49 @@ init_direct_color (GdkColorContext *cc) gulong *gtable; gulong *btable; gdouble dinc; - + init_true_color (cc); /* for shift stuff */ - + rval = cc->visual->red_mask >> cc->shifts.red; gval = cc->visual->green_mask >> cc->shifts.green; bval = cc->visual->blue_mask >> cc->shifts.blue; - + rtable = g_new (gulong, rval + 1); gtable = g_new (gulong, gval + 1); btable = g_new (gulong, bval + 1); - + cc->max_entry = MAX (rval, gval); cc->max_entry = MAX (cc->max_entry, bval); - + cstart = g_new (GdkColor, cc->max_entry + 1); cc->clut = g_new (gulong, cc->max_entry + 1); - -retrydirect: - + + retrydirect: + for (n = 0; n < rval; n++) rtable[n] = rval ? (65535.0 / rval * n) : 0; - + for (n = 0; n < gval; n++) gtable[n] = gval ? (65535.0 / gval * n) : 0; - + for (n = 0; n < bval; n++) btable[n] = bval ? (65535.0 / bval * n) : 0; - + cc->max_entry = MAX (rval, gval); cc->max_entry = MAX (cc->max_entry, bval); - + count = 0; clrs = cstart; cc->num_colors = (rval + 1) * (gval + 1) * (bval + 1); - + for (n = 0; n < cc->max_entry; n++) { dinc = (double) n / cc->max_entry; - + clrs->red = rtable[(int) (dinc * rval)]; clrs->green = gtable[(int) (dinc * gval)]; clrs->blue = btable[(int) (dinc * bval)]; - + if (gdk_color_alloc (cc->colormap, clrs)) { cc->clut[count++] = clrs->pixel; @@ -400,25 +400,25 @@ retrydirect: else { gdk_colors_free (cc->colormap, cc->clut, count, 0); - + rval >>= 1; gval >>= 1; bval >>= 1; - + cc->masks.red = (cc->masks.red >> 1) & cc->visual->red_mask; cc->masks.green = (cc->masks.green >> 1) & cc->visual->green_mask; cc->masks.blue = (cc->masks.blue >> 1) & cc->visual->blue_mask; - + cc->shifts.red++; cc->shifts.green++; cc->shifts.blue++; - + cc->bits.red--; cc->bits.green--; cc->bits.blue--; - + cc->num_colors = (rval + 1) * (gval + 1) * (bval + 1); - + if (cc->num_colors >1) goto retrydirect; else @@ -430,13 +430,13 @@ retrydirect: } } } - + /* Update allocated color count; original num_colors is max_entry, which * is not necessarily the same as the really allocated number of colors. */ - + cc->num_colors = count; - + g_free (rtable); g_free (gtable); g_free (btable); @@ -447,7 +447,7 @@ static void init_palette (GdkColorContext *cc) { /* restore correct mode for this cc */ - + switch (cc->visual->type) { case GDK_VISUAL_STATIC_GRAY: @@ -457,40 +457,40 @@ init_palette (GdkColorContext *cc) else cc->mode = GDK_CC_MODE_MY_GRAY; break; - + case GDK_VISUAL_TRUE_COLOR: case GDK_VISUAL_DIRECT_COLOR: cc->mode = GDK_CC_MODE_TRUE; break; - + case GDK_VISUAL_STATIC_COLOR: case GDK_VISUAL_PSEUDO_COLOR: cc->mode = GDK_CC_MODE_STD_CMAP; break; - + default: cc->mode = GDK_CC_MODE_UNDEFINED; break; } - + /* previous palette */ - + if (cc->num_palette) g_free (cc->palette); - + if (cc->fast_dither) g_free (cc->fast_dither); - + /* clear hash table if present */ - + if (cc->color_hash) { /* XXX: quick-and-dirty way to remove everything */ - + g_hash_table_destroy (cc->color_hash); cc->color_hash = g_hash_table_new (hash_color, compare_colors); } - + cc->palette = NULL; cc->num_palette = 0; cc->fast_dither = NULL; @@ -505,10 +505,10 @@ gdk_color_context_new (GdkVisual *visual, GdkColorContext *cc; gint retry_count; GdkColormap *default_colormap; - + g_assert (visual != NULL); g_assert (colormap != NULL); - + ccp = g_new (GdkColorContextPrivate, 1); cc = (GdkColorContext *) ccp; ccp->xdisplay = gdk_display; @@ -518,16 +518,16 @@ gdk_color_context_new (GdkVisual *visual, cc->cmap = NULL; cc->mode = GDK_CC_MODE_UNDEFINED; cc->need_to_free_colormap = FALSE; - + cc->color_hash = NULL; cc->palette = NULL; cc->num_palette = 0; cc->fast_dither = NULL; - + default_colormap = gdk_colormap_get_system (); - + retry_count = 0; - + while (retry_count < 2) { /* Only create a private colormap if the visual found isn't equal @@ -535,66 +535,66 @@ gdk_color_context_new (GdkVisual *visual, * -or- if we are instructed to create a private colormap (which * never is the case for XmHTML). */ - + if (use_private_colormap || ((cc->visual != gdk_visual_get_system ()) /* default visual? */ && (GDK_COLORMAP_XCOLORMAP (colormap) == GDK_COLORMAP_XCOLORMAP (default_colormap)))) { g_warning ("gdk_color_context_new: non-default visual detected, " "using private colormap"); - + cc->colormap = gdk_colormap_new (cc->visual, FALSE); - + cc->need_to_free_colormap = (GDK_COLORMAP_XCOLORMAP (colormap) != GDK_COLORMAP_XCOLORMAP (default_colormap)); } - + switch (visual->type) { case GDK_VISUAL_STATIC_GRAY: case GDK_VISUAL_GRAYSCALE: GDK_NOTE (COLOR_CONTEXT, - g_print ("gdk_color_context_new: visual class is %s\n", - (visual->type == GDK_VISUAL_STATIC_GRAY) ? - "GDK_VISUAL_STATIC_GRAY" : - "GDK_VISUAL_GRAYSCALE")); - + g_message ("gdk_color_context_new: visual class is %s\n", + (visual->type == GDK_VISUAL_STATIC_GRAY) ? + "GDK_VISUAL_STATIC_GRAY" : + "GDK_VISUAL_GRAYSCALE")); + if (GDK_VISUAL_XVISUAL (cc->visual)->map_entries == 2) init_bw (cc); else init_gray (cc); - + break; - + case GDK_VISUAL_TRUE_COLOR: /* shifts */ GDK_NOTE (COLOR_CONTEXT, - g_print ("gdk_color_context_new: visual class is GDK_VISUAL_TRUE_COLOR\n")); - + g_message ("gdk_color_context_new: visual class is GDK_VISUAL_TRUE_COLOR\n")); + init_true_color (cc); break; - + case GDK_VISUAL_DIRECT_COLOR: /* shifts and fake CLUT */ GDK_NOTE (COLOR_CONTEXT, - g_print ("gdk_color_context_new: visual class is GDK_VISUAL_DIRECT_COLOR\n")); - + g_message ("gdk_color_context_new: visual class is GDK_VISUAL_DIRECT_COLOR\n")); + init_direct_color (cc); break; - + case GDK_VISUAL_STATIC_COLOR: case GDK_VISUAL_PSEUDO_COLOR: GDK_NOTE (COLOR_CONTEXT, - g_print ("gdk_color_context_new: visual class is %s\n", - (visual->type == GDK_VISUAL_STATIC_COLOR) ? - "GDK_VISUAL_STATIC_COLOR" : - "GDK_VISUAL_PSEUDO_COLOR")); - + g_message ("gdk_color_context_new: visual class is %s\n", + (visual->type == GDK_VISUAL_STATIC_COLOR) ? + "GDK_VISUAL_STATIC_COLOR" : + "GDK_VISUAL_PSEUDO_COLOR")); + init_color (cc); break; - + default: g_assert_not_reached (); } - + if ((cc->mode == GDK_CC_MODE_BW) && (cc->visual->depth > 1)) { use_private_colormap = TRUE; @@ -603,20 +603,20 @@ gdk_color_context_new (GdkVisual *visual, else break; } - + /* no. of colors allocated yet */ - + cc->num_allocated = 0; - + GDK_NOTE (COLOR_CONTEXT, - g_print ("gdk_color_context_new: screen depth is %i, no. of colors is %i\n", - cc->visual->depth, cc->num_colors)); - + g_message ("gdk_color_context_new: screen depth is %i, no. of colors is %i\n", + cc->visual->depth, cc->num_colors)); + /* check if we need to initialize a hash table */ - + if ((cc->mode == GDK_CC_MODE_STD_CMAP) || (cc->mode == GDK_CC_MODE_UNDEFINED)) cc->color_hash = g_hash_table_new (hash_color, compare_colors); - + return (GdkColorContext *) cc; } @@ -626,10 +626,10 @@ gdk_color_context_new_mono (GdkVisual *visual, { GdkColorContextPrivate *ccp; GdkColorContext *cc; - + g_assert (visual != NULL); g_assert (colormap != NULL); - + cc = g_new (GdkColorContext, 1); ccp = (GdkColorContextPrivate *) cc; ccp->xdisplay = gdk_display; @@ -639,9 +639,9 @@ gdk_color_context_new_mono (GdkVisual *visual, cc->cmap = NULL; cc->mode = GDK_CC_MODE_UNDEFINED; cc->need_to_free_colormap = FALSE; - + init_bw (cc); - + return (GdkColorContext *) cc; } @@ -651,7 +651,7 @@ void gdk_color_context_free (GdkColorContext *cc) { g_assert (cc != NULL); - + if ((cc->visual->type == GDK_VISUAL_STATIC_COLOR) || (cc->visual->type == GDK_VISUAL_PSEUDO_COLOR)) { @@ -663,17 +663,17 @@ gdk_color_context_free (GdkColorContext *cc) gdk_colors_free (cc->colormap, cc->clut, cc->num_colors, 0); g_free (cc->clut); } - + if (cc->cmap != NULL) g_free (cc->cmap); - + if (cc->need_to_free_colormap) gdk_colormap_unref (cc->colormap); - + /* free any palette that has been associated with this GdkColorContext */ - + init_palette (cc); - + if (cc->color_hash) { g_hash_table_foreach (cc->color_hash, @@ -681,7 +681,7 @@ gdk_color_context_free (GdkColorContext *cc) NULL); g_hash_table_destroy (cc->color_hash); } - + g_free (cc); } @@ -695,146 +695,146 @@ gdk_color_context_get_pixel (GdkColorContext *cc, GdkColorContextPrivate *ccp = (GdkColorContextPrivate *) cc; g_assert (cc != NULL); g_assert (failed != NULL); - + *failed = FALSE; - + switch (cc->mode) { case GDK_CC_MODE_BW: - { - gdouble value; - - value = (red / 65535.0 * 0.30 - + green / 65535.0 * 0.59 - + blue / 65535.0 * 0.11); - - if (value > 0.5) - return cc->white_pixel; - - return cc->black_pixel; - } - + { + gdouble value; + + value = (red / 65535.0 * 0.30 + + green / 65535.0 * 0.59 + + blue / 65535.0 * 0.11); + + if (value > 0.5) + return cc->white_pixel; + + return cc->black_pixel; + } + case GDK_CC_MODE_MY_GRAY: - { - gulong ired, igreen, iblue; - - red = red * 0.30 + green * 0.59 + blue * 0.11; - green = 0; - blue = 0; - - if ((ired = red * (ccp->std_cmap.red_max + 1) / 0xffff) > ccp->std_cmap.red_max) - ired = ccp->std_cmap.red_max; - - ired *= ccp->std_cmap.red_mult; - - if ((igreen = green * (ccp->std_cmap.green_max + 1) / 0xffff) > ccp->std_cmap.green_max) - igreen = ccp->std_cmap.green_max; - - igreen *= ccp->std_cmap.green_mult; - - if ((iblue = blue * (ccp->std_cmap.blue_max + 1) / 0xffff) > ccp->std_cmap.blue_max) - iblue = ccp->std_cmap.blue_max; - - iblue *= ccp->std_cmap.blue_mult; - - if (cc->clut != NULL) - return cc->clut[ccp->std_cmap.base_pixel + ired + igreen + iblue]; - - return ccp->std_cmap.base_pixel + ired + igreen + iblue; - } - + { + gulong ired, igreen, iblue; + + red = red * 0.30 + green * 0.59 + blue * 0.11; + green = 0; + blue = 0; + + if ((ired = red * (ccp->std_cmap.red_max + 1) / 0xffff) > ccp->std_cmap.red_max) + ired = ccp->std_cmap.red_max; + + ired *= ccp->std_cmap.red_mult; + + if ((igreen = green * (ccp->std_cmap.green_max + 1) / 0xffff) > ccp->std_cmap.green_max) + igreen = ccp->std_cmap.green_max; + + igreen *= ccp->std_cmap.green_mult; + + if ((iblue = blue * (ccp->std_cmap.blue_max + 1) / 0xffff) > ccp->std_cmap.blue_max) + iblue = ccp->std_cmap.blue_max; + + iblue *= ccp->std_cmap.blue_mult; + + if (cc->clut != NULL) + return cc->clut[ccp->std_cmap.base_pixel + ired + igreen + iblue]; + + return ccp->std_cmap.base_pixel + ired + igreen + iblue; + } + case GDK_CC_MODE_TRUE: - { - gulong ired, igreen, iblue; - - if (cc->clut == NULL) - { - red >>= 16 - cc->bits.red; - green >>= 16 - cc->bits.green; - blue >>= 16 - cc->bits.blue; - - ired = (red << cc->shifts.red) & cc->masks.red; - igreen = (green << cc->shifts.green) & cc->masks.green; - iblue = (blue << cc->shifts.blue) & cc->masks.blue; - - return ired | igreen | iblue; - } - - ired = cc->clut[red * cc->max_entry / 65535] & cc->masks.red; - igreen = cc->clut[green * cc->max_entry / 65535] & cc->masks.green; - iblue = cc->clut[blue * cc->max_entry / 65535] & cc->masks.blue; - - return ired | igreen | iblue; - } - + { + gulong ired, igreen, iblue; + + if (cc->clut == NULL) + { + red >>= 16 - cc->bits.red; + green >>= 16 - cc->bits.green; + blue >>= 16 - cc->bits.blue; + + ired = (red << cc->shifts.red) & cc->masks.red; + igreen = (green << cc->shifts.green) & cc->masks.green; + iblue = (blue << cc->shifts.blue) & cc->masks.blue; + + return ired | igreen | iblue; + } + + ired = cc->clut[red * cc->max_entry / 65535] & cc->masks.red; + igreen = cc->clut[green * cc->max_entry / 65535] & cc->masks.green; + iblue = cc->clut[blue * cc->max_entry / 65535] & cc->masks.blue; + + return ired | igreen | iblue; + } + case GDK_CC_MODE_PALETTE: return gdk_color_context_get_pixel_from_palette (cc, &red, &green, &blue, failed); - + case GDK_CC_MODE_STD_CMAP: default: - { - GdkColor color; - GdkColor *result; - - color.red = red; - color.green = green; - color.blue = blue; - - result = g_hash_table_lookup (cc->color_hash, &color); - - if (!result) - { - color.red = red; - color.green = green; - color.blue = blue; - color.pixel = 0; - - if (!gdk_color_alloc (cc->colormap, &color)) - *failed = TRUE; - else - { - GdkColor *cnew; - - /* XXX: the following comment comes directly from - * XCC.c. I don't know if it is relevant for - * gdk_color_alloc() as it is for XAllocColor() - * - Federico - */ - /* - * I can't figure this out entirely, but it *is* possible - * that XAllocColor succeeds, even if the number of - * allocations we've made exceeds the number of available - * colors in the current colormap. And therefore it - * might be necessary for us to resize the CLUT. - */ - - if (cc->num_allocated == cc->max_colors) - { - cc->max_colors *= 2; - - GDK_NOTE (COLOR_CONTEXT, - g_print ("gdk_color_context_get_pixel: " - "resizing CLUT to %i entries\n", - cc->max_colors)); - - cc->clut = g_realloc (cc->clut, - cc->max_colors * sizeof (gulong)); - } - - /* Key and value are the same color structure */ - - cnew = g_new (GdkColor, 1); - *cnew = color; - g_hash_table_insert (cc->color_hash, cnew, cnew); - - cc->clut[cc->num_allocated] = color.pixel; - cc->num_allocated++; - return color.pixel; - } - } - - return result->pixel; - } + { + GdkColor color; + GdkColor *result; + + color.red = red; + color.green = green; + color.blue = blue; + + result = g_hash_table_lookup (cc->color_hash, &color); + + if (!result) + { + color.red = red; + color.green = green; + color.blue = blue; + color.pixel = 0; + + if (!gdk_color_alloc (cc->colormap, &color)) + *failed = TRUE; + else + { + GdkColor *cnew; + + /* XXX: the following comment comes directly from + * XCC.c. I don't know if it is relevant for + * gdk_color_alloc() as it is for XAllocColor() + * - Federico + */ + /* + * I can't figure this out entirely, but it *is* possible + * that XAllocColor succeeds, even if the number of + * allocations we've made exceeds the number of available + * colors in the current colormap. And therefore it + * might be necessary for us to resize the CLUT. + */ + + if (cc->num_allocated == cc->max_colors) + { + cc->max_colors *= 2; + + GDK_NOTE (COLOR_CONTEXT, + g_message ("gdk_color_context_get_pixel: " + "resizing CLUT to %i entries\n", + cc->max_colors)); + + cc->clut = g_realloc (cc->clut, + cc->max_colors * sizeof (gulong)); + } + + /* Key and value are the same color structure */ + + cnew = g_new (GdkColor, 1); + *cnew = color; + g_hash_table_insert (cc->color_hash, cnew, cnew); + + cc->clut[cc->num_allocated] = color.pixel; + cc->num_allocated++; + return color.pixel; + } + } + + return result->pixel; + } } } @@ -861,37 +861,37 @@ gdk_color_context_get_pixels (GdkColorContext *cc, g_assert (blues != NULL); g_assert (colors != NULL); g_assert (nallocated != NULL); - + memset (defs, 0, MAX_IMAGE_COLORS * sizeof (GdkColor)); memset (failed, 0, MAX_IMAGE_COLORS * sizeof (gint)); memset (allocated, 0, MAX_IMAGE_COLORS * sizeof (gint)); - + /* Will only have a value if used by the progressive image loader */ - + ncols = *nallocated; - + *nallocated = 0; - + /* First allocate all pixels */ - + for (i = 0; i < ncolors; i++) { /* colors[i] is only zero if the pixel at that location hasn't * been allocated yet. This is a sanity check required for proper * color allocation by the progressive image loader */ - + if (colors[i] == 0) { defs[i].red = reds[i]; defs[i].green = greens[i]; defs[i].blue = blues[i]; - + colors[i] = gdk_color_context_get_pixel (cc, reds[i], greens[i], blues[i], &bad_alloc); - + /* successfully allocated, store it */ - + if (!bad_alloc) { defs[i].pixel = colors[i]; @@ -901,114 +901,114 @@ gdk_color_context_get_pixels (GdkColorContext *cc, failed[nopen++] = i; } } - + *nallocated = ncols; - + /* all colors available, all done */ - + if ((ncols == ncolors) || (nopen == 0)) { GDK_NOTE (COLOR_CONTEXT, - g_print ("gdk_color_context_get_pixels: got all %i colors; " - "(%i colors allocated so far)\n", ncolors, cc->num_allocated)); - + g_message ("gdk_color_context_get_pixels: got all %i colors; " + "(%i colors allocated so far)\n", ncolors, cc->num_allocated)); + return; } - + /* The fun part. We now try to allocate the colors we couldn't allocate * directly. The first step will map a color onto its nearest color * that has been allocated (either by us or someone else). If any colors * remain unallocated, we map these onto the colors that we have allocated * ourselves. */ - + /* read up to MAX_IMAGE_COLORS colors of the current colormap */ - + cmapsize = MIN (cc->num_colors, MAX_IMAGE_COLORS); - + /* see if the colormap has any colors to read */ - + if (cmapsize < 0) { g_warning ("gdk_color_context_get_pixels: oops! no colors available, " "your images will look *really* ugly."); - + return; } - + #ifdef G_ENABLE_DEBUG exact_col = ncols; #endif - + /* initialize pixels */ - + for (i = 0; i < cmapsize; i++) { cmap[i].pixel = i; cmap[i].red = cmap[i].green = cmap[i].blue = 0; } - + /* read the colormap */ - + my_x_query_colors (cc->colormap, cmap, cmapsize); - + /* get a close match for any unallocated colors */ - + counter = nopen; nopen = 0; idx = 0; - + do { gint d, j, mdist, close, ri, gi, bi; gint rd, gd, bd; - + i = failed[idx]; - + mdist = 0x1000000; close = -1; - + /* Store these vals. Small performance increase as this skips three * indexing operations in the loop code. */ - + ri = reds[i]; gi = greens[i]; bi = blues[i]; - + /* Walk all colors in the colormap and see which one is the * closest. Uses plain least squares. */ - + for (j = 0; (j < cmapsize) && (mdist != 0); j++) { /* Don't replace these by shifts; the sign may get clobbered */ - + rd = (ri - cmap[j].red) / 256; gd = (gi - cmap[j].green) / 256; bd = (bi - cmap[j].blue) / 256; - + d = rd * rd + gd * gd + bd * bd; - + if (d < mdist) { close = j; mdist = d; } } - + if (close != -1) { rd = cmap[close].red; gd = cmap[close].green; bd = cmap[close].blue; - + /* allocate */ - + colors[i] = gdk_color_context_get_pixel (cc, rd, gd, bd, &bad_alloc); - + /* store */ - + if (!bad_alloc) { defs[i] = cmap[close]; @@ -1024,68 +1024,68 @@ gdk_color_context_get_pixels (GdkColorContext *cc, /* deal with in next stage if allocation failed */ } while (++idx < counter); - + *nallocated = ncols; - + /* This is the maximum no. of allocated colors. See also the nopen == 0 * note above. */ - + if ((ncols == ncolors) || (nopen == 0)) { GDK_NOTE (COLOR_CONTEXT, - g_print ("gdk_color_context_get_pixels: got %i colors, %i exact and " - "%i close (%i colors allocated so far)\n", - ncolors, exact_col, close_col, cc->num_allocated)); - + g_message ("gdk_color_context_get_pixels: got %i colors, %i exact and " + "%i close (%i colors allocated so far)\n", + ncolors, exact_col, close_col, cc->num_allocated)); + return; } - + /* Now map any remaining unallocated pixels into the colors we did get */ - + idx = 0; - + do { gint d, mdist, close, ri, gi, bi; gint j, rd, gd, bd; - + i = failed[idx]; - + mdist = 0x1000000; close = -1; - + /* store */ - + ri = reds[i]; gi = greens[i]; bi = blues[i]; - + /* search allocated colors */ - + for (j = 0; (j < ncols) && (mdist != 0); j++) { k = allocated[j]; - + /* Don't replace these by shifts; the sign may get clobbered */ - + rd = (ri - defs[k].red) / 256; gd = (gi - defs[k].green) / 256; bd = (bi - defs[k].blue) / 256; - + d = rd * rd + gd * gd + bd * bd; - + if (d < mdist) { close = k; mdist = d; } } - + if (close < 0) { /* too bad, map to black */ - + defs[i].pixel = cc->black_pixel; defs[i].red = defs[i].green = defs[i].blue = 0; #ifdef G_ENABLE_DEBUG @@ -1099,15 +1099,15 @@ gdk_color_context_get_pixels (GdkColorContext *cc, subst_col++; #endif } - + colors[i] = defs[i].pixel; } while (++idx < nopen); - + GDK_NOTE (COLOR_CONTEXT, - g_print ("gdk_color_context_get_pixels: got %i colors, %i exact, %i close, " - "%i substituted, %i to black (%i colors allocated so far)\n", - ncolors, exact_col, close_col, subst_col, black_col, cc->num_allocated)); + g_message ("gdk_color_context_get_pixels: got %i colors, %i exact, %i close, " + "%i substituted, %i to black (%i colors allocated so far)\n", + ncolors, exact_col, close_col, subst_col, black_col, cc->num_allocated)); } void @@ -1128,7 +1128,7 @@ gdk_color_context_get_pixels_incremental (GdkColorContext *cc, #ifdef G_ENABLE_DEBUG gint exact_col = 0, subst_col = 0, close_col = 0, black_col = 0; #endif - + g_assert (cc != NULL); g_assert (reds != NULL); g_assert (greens != NULL); @@ -1136,19 +1136,19 @@ gdk_color_context_get_pixels_incremental (GdkColorContext *cc, g_assert (used != NULL); g_assert (colors != NULL); g_assert (nallocated != NULL); - + memset (defs, 0, MAX_IMAGE_COLORS * sizeof (GdkColor)); memset (failed, 0, MAX_IMAGE_COLORS * sizeof (gint)); memset (allocated, 0, MAX_IMAGE_COLORS * sizeof (gint)); - + /* Will only have a value if used by the progressive image loader */ - + ncols = *nallocated; - + *nallocated = 0; - + /* First allocate all pixels */ - + for (i = 0; i < ncolors; i++) { /* used[i] is only -1 if the pixel at that location hasn't @@ -1157,7 +1157,7 @@ gdk_color_context_get_pixels_incremental (GdkColorContext *cc, * When colors[i] == 0 it indicates the slot is available for * allocation. */ - + if (used[i] != FALSE) { if (colors[i] == 0) @@ -1165,11 +1165,11 @@ gdk_color_context_get_pixels_incremental (GdkColorContext *cc, defs[i].red = reds[i]; defs[i].green = greens[i]; defs[i].blue = blues[i]; - + colors[i] = gdk_color_context_get_pixel (cc, reds[i], greens[i], blues[i], &bad_alloc); - + /* successfully allocated, store it */ - + if (!bad_alloc) { defs[i].pixel = colors[i]; @@ -1181,100 +1181,100 @@ gdk_color_context_get_pixels_incremental (GdkColorContext *cc, #ifdef DEBUG else GDK_NOTE (COLOR_CONTEXT, - g_print ("gdk_color_context_get_pixels_incremental: " - "pixel at slot %i already allocated, skipping\n", i)); + g_message ("gdk_color_context_get_pixels_incremental: " + "pixel at slot %i already allocated, skipping\n", i)); #endif } } - + *nallocated = ncols; - + if ((ncols == ncolors) || (nopen == 0)) { GDK_NOTE (COLOR_CONTEXT, - g_print ("gdk_color_context_get_pixels_incremental: got all %i colors " - "(%i colors allocated so far)\n", - ncolors, cc->num_allocated)); - + g_message ("gdk_color_context_get_pixels_incremental: got all %i colors " + "(%i colors allocated so far)\n", + ncolors, cc->num_allocated)); + return; } - + cmapsize = MIN (cc->num_colors, MAX_IMAGE_COLORS); - + if (cmapsize < 0) { g_warning ("gdk_color_context_get_pixels_incremental: oops! " "No colors available images will look *really* ugly."); return; } - + #ifdef G_ENABLE_DEBUG exact_col = ncols; #endif - + /* initialize pixels */ - + for (i = 0; i < cmapsize; i++) { cmap[i].pixel = i; cmap[i].red = cmap[i].green = cmap[i].blue = 0; } - + /* read */ - + my_x_query_colors (cc->colormap, cmap, cmapsize); - + /* now match any unallocated colors */ - + counter = nopen; nopen = 0; idx = 0; - + do { gint d, j, mdist, close, ri, gi, bi; gint rd, gd, bd; - + i = failed[idx]; - + mdist = 0x1000000; close = -1; - + /* store */ - + ri = reds[i]; gi = greens[i]; bi = blues[i]; - + for (j = 0; (j < cmapsize) && (mdist != 0); j++) { /* Don't replace these by shifts; the sign may get clobbered */ - + rd = (ri - cmap[j].red) / 256; gd = (gi - cmap[j].green) / 256; bd = (bi - cmap[j].blue) / 256; - + d = rd * rd + gd * gd + bd * bd; - + if (d < mdist) { close = j; mdist = d; } } - + if (close != -1) { rd = cmap[close].red; gd = cmap[close].green; bd = cmap[close].blue; - + /* allocate */ - + colors[i] = gdk_color_context_get_pixel (cc, rd, gd, bd, &bad_alloc); - + /* store */ - + if (!bad_alloc) { defs[i] = cmap[close]; @@ -1292,64 +1292,64 @@ gdk_color_context_get_pixels_incremental (GdkColorContext *cc, /* deal with in next stage if allocation failed */ } while (++idx < counter); - + *nallocated = ncols; - + if ((ncols == ncolors) || (nopen == 0)) { GDK_NOTE (COLOR_CONTEXT, - g_print ("gdk_color_context_get_pixels_incremental: " - "got %i colors, %i exact and %i close " - "(%i colors allocated so far)\n", - ncolors, exact_col, close_col, cc->num_allocated)); - + g_message ("gdk_color_context_get_pixels_incremental: " + "got %i colors, %i exact and %i close " + "(%i colors allocated so far)\n", + ncolors, exact_col, close_col, cc->num_allocated)); + return; } - + /* map remaining unallocated pixels into colors we did get */ - + idx = 0; - + do { gint d, mdist, close, ri, gi, bi; gint j, rd, gd, bd; - + i = failed[idx]; - + mdist = 0x1000000; close = -1; - + ri = reds[i]; gi = greens[i]; bi = blues[i]; - + /* search allocated colors */ - + for (j = 0; (j < ncols) && (mdist != 0); j++) { k = allocated[j]; - + /* downscale */ /* Don't replace these by shifts; the sign may get clobbered */ - + rd = (ri - defs[k].red) / 256; gd = (gi - defs[k].green) / 256; bd = (bi - defs[k].blue) / 256; - + d = rd * rd + gd * gd + bd * bd; - + if (d < mdist) { close = k; mdist = d; } } - + if (close < 0) { /* too bad, map to black */ - + defs[i].pixel = cc->black_pixel; defs[i].red = defs[i].green = defs[i].blue = 0; #ifdef G_ENABLE_DEBUG @@ -1363,16 +1363,16 @@ gdk_color_context_get_pixels_incremental (GdkColorContext *cc, subst_col++; #endif } - + colors[i] = defs[i].pixel; } while (++idx < nopen); - + GDK_NOTE (COLOR_CONTEXT, - g_print ("gdk_color_context_get_pixels_incremental: " - "got %i colors, %i exact, %i close, %i substituted, %i to black " - "(%i colors allocated so far)\n", - ncolors, exact_col, close_col, subst_col, black_col, cc->num_allocated)); + g_message ("gdk_color_context_get_pixels_incremental: " + "got %i colors, %i exact, %i close, %i substituted, %i to black " + "(%i colors allocated so far)\n", + ncolors, exact_col, close_col, subst_col, black_col, cc->num_allocated)); } gint @@ -1389,10 +1389,10 @@ gdk_color_context_query_colors (GdkColorContext *cc, { gint i; GdkColor *tc; - + g_assert (cc != NULL); g_assert (colors != NULL); - + switch (cc->mode) { case GDK_CC_MODE_BW: @@ -1404,7 +1404,7 @@ gdk_color_context_query_colors (GdkColorContext *cc, tc->red = tc->green = tc->blue = 0; } break; - + case GDK_CC_MODE_TRUE: if (cc->clut == NULL) for (i = 0, tc = colors; i < num_colors; i++, tc++) @@ -1419,7 +1419,7 @@ gdk_color_context_query_colors (GdkColorContext *cc, return 1; } break; - + case GDK_CC_MODE_STD_CMAP: default: if (cc->cmap == NULL) @@ -1431,17 +1431,17 @@ gdk_color_context_query_colors (GdkColorContext *cc, { gint first, last, half; gulong half_pixel; - + for (i = 0, tc = colors; i < num_colors; i++) { first = 0; last = cc->num_colors - 1; - + while (first <= last) { half = (first + last) / 2; half_pixel = cc->cmap[half].pixel; - + if (tc->pixel == half_pixel) { tc->red = cc->cmap[half].red; @@ -1473,94 +1473,94 @@ gdk_color_context_add_palette (GdkColorContext *cc, gint i, j, erg; gushort r, g, b; gulong pixel[1]; - + g_assert (cc != NULL); - + /* initialize this palette (will also erase previous palette as well) */ - + init_palette (cc); - + /* restore previous mode if we aren't adding a new palette */ - + if (num_palette == 0) { /* GDK_CC_MODE_STD_CMAP uses a hash table, so we'd better initialize one */ - + /* XXX: here, the hash table is already initialized */ - + return 0; } - + /* Initialize a hash table for this palette (we need one for allocating * the pixels in the palette using the current settings) */ - + if (cc->color_hash == NULL) cc->color_hash = g_hash_table_new (hash_color, compare_colors); - + /* copy incoming palette */ - + cc->palette = g_new0(GdkColor, num_palette); - + j = 0; - + for (i = 0; i < num_palette; i++) { erg = 0; pixel[0] = 0; - + /* try to allocate this color */ - + r = palette[i].red; g = palette[i].green; b = palette[i].blue; - + gdk_color_context_get_pixels (cc, &r, &g, &b, 1, pixel, &erg); - + /* only store if we succeed */ - + if (erg) { /* store in palette */ - + cc->palette[j].red = r; cc->palette[j].green = g; cc->palette[j].blue = b; cc->palette[j].pixel = pixel[0]; - + /* move to next slot */ - + j++; } } - + /* resize to fit */ - + if (j != num_palette) cc->palette = g_realloc (cc->palette, j * sizeof (GdkColor)); - + /* clear the hash table, we don't use it when dithering */ - + if (cc->color_hash) { g_hash_table_destroy (cc->color_hash); cc->color_hash = NULL; } - + /* store real palette size */ - + cc->num_palette = j; - + /* switch to palette mode */ - + cc->mode = GDK_CC_MODE_PALETTE; - + /* sort palette */ - + qsort (cc->palette, cc->num_palette, sizeof (GdkColor), pixel_sort); - + cc->fast_dither = NULL; - + return j; } @@ -1569,17 +1569,17 @@ gdk_color_context_init_dither (GdkColorContext *cc) { gint rr, gg, bb, err, erg, erb; gint success = FALSE; - + g_assert (cc != NULL); - + /* now we can initialize the fast dither matrix */ - + if (cc->fast_dither == NULL) cc->fast_dither = g_new (GdkColorContextDither, 1); - + /* Fill it. We ignore unsuccessful allocations, they are just mapped * to black instead */ - + for (rr = 0; rr < 32; rr++) for (gg = 0; gg < 32; gg++) for (bb = 0; bb < 32; bb++) @@ -1587,7 +1587,7 @@ gdk_color_context_init_dither (GdkColorContext *cc) err = (rr << 3) | (rr >> 2); erg = (gg << 3) | (gg >> 2); erb = (bb << 3) | (bb >> 2); - + cc->fast_dither->fast_rgb[rr][gg][bb] = gdk_color_context_get_index_from_palette (cc, &err, &erg, &erb, &success); cc->fast_dither->fast_err[rr][gg][bb] = err; @@ -1600,10 +1600,10 @@ void gdk_color_context_free_dither (GdkColorContext *cc) { g_assert (cc != NULL); - + if (cc->fast_dither) g_free (cc->fast_dither); - + cc->fast_dither = NULL; } @@ -1619,23 +1619,23 @@ gdk_color_context_get_pixel_from_palette (GdkColorContext *cc, gint mindif = 0x7fffffff; gint err = 0, erg = 0, erb = 0; gint i; - + g_assert (cc != NULL); g_assert (red != NULL); g_assert (green != NULL); g_assert (blue != NULL); g_assert (failed != NULL); - + *failed = FALSE; - + for (i = 0; i < cc->num_palette; i++) { dr = *red - cc->palette[i].red; dg = *green - cc->palette[i].green; db = *blue - cc->palette[i].blue; - + dif = dr * dr + dg * dg + db * db; - + if (dif < mindif) { mindif = dif; @@ -1644,14 +1644,14 @@ gdk_color_context_get_pixel_from_palette (GdkColorContext *cc, err = dr; erg = dg; erb = db; - + if (mindif == 0) break; } } - + /* we failed to map onto a color */ - + if (j == -1) *failed = TRUE; else @@ -1660,7 +1660,7 @@ gdk_color_context_get_pixel_from_palette (GdkColorContext *cc, *green = ABS (erg); *blue = ABS (erb); } - + return pixel; } @@ -1675,23 +1675,23 @@ gdk_color_context_get_index_from_palette (GdkColorContext *cc, gint mindif = 0x7fffffff; gint err = 0, erg = 0, erb = 0; gint i; - + g_assert (cc != NULL); g_assert (red != NULL); g_assert (green != NULL); g_assert (blue != NULL); g_assert (failed != NULL); - + *failed = FALSE; - + for (i = 0; i < cc->num_palette; i++) { dr = *red - cc->palette[i].red; dg = *green - cc->palette[i].green; db = *blue - cc->palette[i].blue; - + dif = dr * dr + dg * dg + db * db; - + if (dif < mindif) { mindif = dif; @@ -1699,14 +1699,14 @@ gdk_color_context_get_index_from_palette (GdkColorContext *cc, err = dr; erg = dg; erb = db; - + if (mindif == 0) break; } } - + /* we failed to map onto a color */ - + if (j == -1) { *failed = TRUE; @@ -1715,11 +1715,11 @@ gdk_color_context_get_index_from_palette (GdkColorContext *cc, else { /* return error fractions */ - + *red = err; *green = erg; *blue = erb; } - + return j; } diff --git a/gdk/x11/gdkdnd-x11.c b/gdk/x11/gdkdnd-x11.c index 6a74022c55..331aad7ef7 100644 --- a/gdk/x11/gdkdnd-x11.c +++ b/gdk/x11/gdkdnd-x11.c @@ -1,3 +1,21 @@ +/* GDK - The GIMP Drawing Kit + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ #include <X11/Xlib.h> #include <X11/Xatom.h> #include <string.h> @@ -12,7 +30,7 @@ gdk_dnd_set_drag_cursors(GdkCursor *default_cursor, GdkCursor *goahead_cursor) gdk_dnd.c->gdk_cursor_dragdefault = ((GdkCursorPrivate *)default_cursor)->xcursor; gdk_dnd.c->gdk_cursor_dragok = ((GdkCursorPrivate *)goahead_cursor)->xcursor; - + if(gdk_dnd.dnd_grabbed) { if(gdk_dnd.c->drag_pm_default) @@ -42,7 +60,7 @@ gdk_dnd_set_drag_shape(GdkWindow *default_pixmapwin, GdkPoint *goahead_hotspot) { g_return_if_fail(default_pixmapwin != NULL); - + g_list_free(gdk_dnd.c->xids); gdk_dnd.c->xids = NULL; if(gdk_dnd.c->drag_pm_default) { @@ -54,9 +72,9 @@ gdk_dnd_set_drag_shape(GdkWindow *default_pixmapwin, gdk_window_hide(gdk_dnd.c->drag_pm_ok); gdk_window_unref(gdk_dnd.c->drag_pm_ok); } - + gdk_dnd.c->drag_pm_ok = NULL; - + gdk_window_ref(default_pixmapwin); gdk_dnd.c->drag_pm_default = default_pixmapwin; gdk_dnd.c->default_hotspot = *default_hotspot; @@ -68,7 +86,7 @@ gdk_dnd_set_drag_shape(GdkWindow *default_pixmapwin, gdk_dnd.c->drag_pm_ok = goahead_pixmapwin; gdk_dnd.c->ok_hotspot = *goahead_hotspot; } - + if(gdk_dnd.dnd_grabbed) { gdk_dnd_display_drag_cursor(-1, -1, @@ -90,7 +108,7 @@ gdk_dnd_display_drag_cursor(gint x, gint y, gboolean drag_ok, { if(!gdk_dnd.dnd_grabbed) return; - + if(gdk_dnd.c->drag_pm_default) { /* We're doing pixmaps here... */ @@ -99,29 +117,29 @@ gdk_dnd_display_drag_cursor(gint x, gint y, gboolean drag_ok, gint itmp; guint masktmp; Window wtmp; - + if(x == -2 && y == -2) /* Hide the cursors */ { gdk_window_hide(gdk_dnd.c->drag_pm_ok); gdk_window_hide(gdk_dnd.c->drag_pm_default); - GDK_NOTE(DND, g_print("Hiding both drag cursors\n")); + GDK_NOTE(DND, g_message("Hiding both drag cursors\n")); return; } - + if(x == -1 && y == -1) /* We're supposed to find it out for ourselves */ XQueryPointer(gdk_display, gdk_root_window, &wtmp, &wtmp, &x, &y, &itmp, &itmp, &masktmp); - + if(drag_ok) { - GDK_NOTE(DND, g_print("Switching to drag_ok cursor\n")); + GDK_NOTE(DND, g_message("Switching to drag_ok cursor\n")); mypix = gdk_dnd.c->drag_pm_ok; opix = gdk_dnd.c->drag_pm_default; myhotspot = &gdk_dnd.c->ok_hotspot; } else { - GDK_NOTE(DND, g_print("Switching to drag_default cursor\n")); + GDK_NOTE(DND, g_message("Switching to drag_default cursor\n")); mypix = gdk_dnd.c->drag_pm_default; opix = gdk_dnd.c->drag_pm_ok; myhotspot = &gdk_dnd.c->default_hotspot; @@ -129,7 +147,7 @@ gdk_dnd_display_drag_cursor(gint x, gint y, gboolean drag_ok, gdk_window_move(mypix, x - myhotspot->x, y - myhotspot->y); if(change_made) { - GDK_NOTE(DND, g_print("Cursors switched, hide & show\n")); + GDK_NOTE(DND, g_message("Cursors switched, hide & show\n")); gdk_window_hide(opix); } gdk_window_move(mypix, x - myhotspot->x, y - myhotspot->y); diff --git a/gdk/x11/gdkfont-x11.c b/gdk/x11/gdkfont-x11.c index 1b37930a73..cc1274a0d6 100644 --- a/gdk/x11/gdkfont-x11.c +++ b/gdk/x11/gdkfont-x11.c @@ -72,9 +72,9 @@ gdk_fontset_load (gchar *fontset_name) if (missing_charset_count) { gint i; - g_print ("Missing charsets in FontSet creation\n"); + g_message ("Missing charsets in FontSet creation\n"); for (i=0;i<missing_charset_count;i++) - g_print (" %s\n", missing_charset_list[i]); + g_message (" %s\n", missing_charset_list[i]); XFreeStringList (missing_charset_list); } diff --git a/gdk/x11/gdkmain-x11.c b/gdk/x11/gdkmain-x11.c index 9dd96da943..a4438cb6d2 100644 --- a/gdk/x11/gdkmain-x11.c +++ b/gdk/x11/gdkmain-x11.c @@ -8,7 +8,7 @@ * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public @@ -68,7 +68,7 @@ # define SELECT_MASK fd_set #else # ifndef _AIX - typedef long fd_mask; +typedef long fd_mask; # endif # if defined(_IBMR2) # define SELECT_MASK void @@ -101,120 +101,120 @@ struct _GdkPredicate * Private function declarations */ -static GdkEvent *gdk_event_new (void); -static gint gdk_event_wait (void); -static gint gdk_event_apply_filters (XEvent *xevent, +static GdkEvent *gdk_event_new (void); +static gint gdk_event_wait (void); +static gint gdk_event_apply_filters (XEvent *xevent, GdkEvent *event, GList *filters); -static gint gdk_event_translate (GdkEvent *event, - XEvent *xevent); +static gint gdk_event_translate (GdkEvent *event, + XEvent *xevent); #if 0 -static Bool gdk_event_get_type (Display *display, - XEvent *xevent, +static Bool gdk_event_get_type (Display *display, + XEvent *xevent, XPointer arg); #endif -static void gdk_synthesize_click (GdkEvent *event, - gint nclicks); +static void gdk_synthesize_click (GdkEvent *event, + gint nclicks); -static void gdk_dnd_drag_begin (GdkWindow *initial_window); -static void gdk_dnd_drag_enter (Window dest); -static void gdk_dnd_drag_leave (Window dest); -static void gdk_dnd_drag_end (Window dest, +static void gdk_dnd_drag_begin (GdkWindow *initial_window); +static void gdk_dnd_drag_enter (Window dest); +static void gdk_dnd_drag_leave (Window dest); +static void gdk_dnd_drag_end (Window dest, GdkPoint coords); -static GdkAtom gdk_dnd_check_types (GdkWindow *window, - XEvent *xevent); +static GdkAtom gdk_dnd_check_types (GdkWindow *window, + XEvent *xevent); #ifdef DEBUG_DND -static void gdk_print_atom (GdkAtom anatom); +static void gdk_print_atom (GdkAtom anatom); #endif #ifndef HAVE_XCONVERTCASE -static void gdkx_XConvertCase (KeySym symbol, - KeySym *lower, - KeySym *upper); +static void gdkx_XConvertCase (KeySym symbol, + KeySym *lower, + KeySym *upper); #define XConvertCase gdkx_XConvertCase #endif /* * old junk from offix, we might use it though so leave it */ -Window gdk_get_client_window (Display *dpy, - Window win); +Window gdk_get_client_window (Display *dpy, + Window win); #ifdef WE_HAVE_MOTIF_DROPS_DONE -static GdkWindow * gdk_drop_get_real_window (GdkWindow *w, +static GdkWindow * gdk_drop_get_real_window (GdkWindow *w, guint16 *x, guint16 *y); #endif -static void gdk_exit_func (void); -static int gdk_x_error (Display *display, +static void gdk_exit_func (void); +static int gdk_x_error (Display *display, XErrorEvent *error); -static int gdk_x_io_error (Display *display); -static RETSIGTYPE gdk_signal (int signum); +static int gdk_x_io_error (Display *display); +static RETSIGTYPE gdk_signal (int signum); #ifdef USE_XIM -static guint gdk_im_va_count (va_list list); +static guint gdk_im_va_count (va_list list); static XVaNestedList gdk_im_va_to_nested (va_list list, - guint count); + guint count); static GdkIM gdk_im_get (void); static gint gdk_im_open (XrmDatabase db, gchar* res_name, gchar* rec_class); static void gdk_im_close (void); -static void gdk_ic_cleanup (void); +static void gdk_ic_cleanup (void); #endif /* USE_XIM */ /* Private variable declarations */ -static int gdk_initialized = 0; /* 1 if the library is initialized, +static int gdk_initialized = 0; /* 1 if the library is initialized, * 0 otherwise. */ -static int connection_number = 0; /* The file descriptor number of our - * connection to the X server. This - * is used so that we may determine - * when events are pending by using - * the "select" system call. +static int connection_number = 0; /* The file descriptor number of our + * connection to the X server. This + * is used so that we may determine + * when events are pending by using + * the "select" system call. */ -static struct timeval start; /* The time at which the library was - * last initialized. +static struct timeval start; /* The time at which the library was + * last initialized. */ -static struct timeval timer; /* Timeout interval to use in the call - * to "select". This is used in - * conjunction with "timerp" to create - * a maximum time to wait for an event - * to arrive. +static struct timeval timer; /* Timeout interval to use in the call + * to "select". This is used in + * conjunction with "timerp" to create + * a maximum time to wait for an event + * to arrive. */ -static struct timeval *timerp; /* The actual timer passed to "select" - * This may be NULL, in which case - * "select" will block until an event - * arrives. +static struct timeval *timerp; /* The actual timer passed to "select" + * This may be NULL, in which case + * "select" will block until an event + * arrives. */ -static guint32 timer_val; /* The timeout length as specified by - * the user in milliseconds. +static guint32 timer_val; /* The timeout length as specified by + * the user in milliseconds. */ -static GList *inputs; /* A list of the input file descriptors - * that we care about. Each list node - * contains a GdkInput struct that describes - * when we are interested in the specified - * file descriptor. That is, when it is - * available for read, write or has an - * exception pending. +static GList *inputs; /* A list of the input file descriptors + * that we care about. Each list node + * contains a GdkInput struct that describes + * when we are interested in the specified + * file descriptor. That is, when it is + * available for read, write or has an + * exception pending. */ -static guint32 button_click_time[2]; /* The last 2 button click times. Used - * to determine if the latest button click - * is part of a double or triple click. +static guint32 button_click_time[2]; /* The last 2 button click times. Used + * to determine if the latest button click + * is part of a double or triple click. */ -static GdkWindow *button_window[2]; /* The last 2 windows to receive button presses. - * Also used to determine if the latest button - * click is part of a double or triple click. +static GdkWindow *button_window[2]; /* The last 2 windows to receive button presses. + * Also used to determine if the latest button + * click is part of a double or triple click. */ -static guint button_number[2]; /* The last 2 buttons to be pressed. +static guint button_number[2]; /* The last 2 buttons to be pressed. */ static GdkWindowPrivate *xgrab_window = NULL; /* Window that currently holds the - * x pointer grab + * x pointer grab */ #ifdef USE_XIM @@ -235,11 +235,11 @@ static gint autorepeat; #ifdef G_ENABLE_DEBUG static GDebugKey gdk_debug_keys[] = { - {"events", GDK_DEBUG_EVENTS}, - {"misc", GDK_DEBUG_MISC}, - {"dnd", GDK_DEBUG_DND}, + {"events", GDK_DEBUG_EVENTS}, + {"misc", GDK_DEBUG_MISC}, + {"dnd", GDK_DEBUG_DND}, {"color-context", GDK_DEBUG_COLOR_CONTEXT}, - {"xim", GDK_DEBUG_XIM} + {"xim", GDK_DEBUG_XIM} }; static const int gdk_ndebug_keys = sizeof(gdk_debug_keys)/sizeof(GDebugKey); @@ -268,7 +268,7 @@ static const int gdk_ndebug_keys = sizeof(gdk_debug_keys)/sizeof(GDebugKey); */ void -gdk_init (int *argc, +gdk_init (int *argc, char ***argv) { XKeyboardState keyboard_state; @@ -277,10 +277,10 @@ gdk_init (int *argc, XClassHint *class_hint; gchar **argv_orig = NULL; gint argc_orig = 0; - + if (gdk_initialized) return; - + if (argc && argv) { argc_orig = *argc; @@ -290,9 +290,9 @@ gdk_init (int *argc, argv_orig[i] = g_strdup ((*argv)[i]); argv_orig[argc_orig] = NULL; } - + X_GETTIMEOFDAY (&start); - + #ifndef I_NEED_TO_ACTUALLY_DEBUG_MY_PROGRAMS signal (SIGHUP, gdk_signal); signal (SIGINT, gdk_signal); @@ -302,14 +302,14 @@ gdk_init (int *argc, signal (SIGPIPE, gdk_signal); signal (SIGTERM, gdk_signal); #endif - + gdk_display_name = NULL; - + XSetErrorHandler (gdk_x_error); XSetIOErrorHandler (gdk_x_io_error); - + synchronize = FALSE; - + #ifdef G_ENABLE_DEBUG { gchar *debug_string = getenv("GDK_DEBUG"); @@ -319,20 +319,20 @@ gdk_init (int *argc, gdk_ndebug_keys); } #endif /* G_ENABLE_DEBUG */ - + if (argc && argv) { if (*argc > 0) { gchar *d; - + d = strrchr((*argv)[0],'/'); if (d != NULL) gdk_progname = g_strdup (d + 1); else gdk_progname = g_strdup ((*argv)[0]); } - + for (i = 1; i < *argc;) { #ifdef G_ENABLE_DEBUG @@ -361,7 +361,7 @@ gdk_init (int *argc, (strncmp ("--gdk-no-debug=", (*argv)[i], 15) == 0)) { gchar *equal_pos = strchr ((*argv)[i], '='); - + if (equal_pos != NULL) { gdk_debug_flags &= ~g_parse_debug_string (equal_pos+1, @@ -381,108 +381,108 @@ gdk_init (int *argc, else #endif /* G_ENABLE_DEBUG */ if (strcmp ("--display", (*argv)[i]) == 0) - { - (*argv)[i] = NULL; - - if ((i + 1) < *argc && (*argv)[i + 1]) - { - gdk_display_name = g_strdup ((*argv)[i + 1]); - (*argv)[i + 1] = NULL; - i += 1; - } - } - else if (strcmp ("--sync", (*argv)[i]) == 0) - { - (*argv)[i] = NULL; - synchronize = TRUE; - } - else if (strcmp ("--no-xshm", (*argv)[i]) == 0) - { - (*argv)[i] = NULL; - gdk_use_xshm = FALSE; - } - else if (strcmp ("--name", (*argv)[i]) == 0) - { - if ((i + 1) < *argc && (*argv)[i + 1]) - { - (*argv)[i++] = NULL; - gdk_progname = (*argv)[i]; - (*argv)[i] = NULL; - } - } - else if (strcmp ("--class", (*argv)[i]) == 0) - { - if ((i + 1) < *argc && (*argv)[i + 1]) - { - (*argv)[i++] = NULL; - gdk_progclass = (*argv)[i]; - (*argv)[i] = NULL; - } - } + { + (*argv)[i] = NULL; + + if ((i + 1) < *argc && (*argv)[i + 1]) + { + gdk_display_name = g_strdup ((*argv)[i + 1]); + (*argv)[i + 1] = NULL; + i += 1; + } + } + else if (strcmp ("--sync", (*argv)[i]) == 0) + { + (*argv)[i] = NULL; + synchronize = TRUE; + } + else if (strcmp ("--no-xshm", (*argv)[i]) == 0) + { + (*argv)[i] = NULL; + gdk_use_xshm = FALSE; + } + else if (strcmp ("--name", (*argv)[i]) == 0) + { + if ((i + 1) < *argc && (*argv)[i + 1]) + { + (*argv)[i++] = NULL; + gdk_progname = (*argv)[i]; + (*argv)[i] = NULL; + } + } + else if (strcmp ("--class", (*argv)[i]) == 0) + { + if ((i + 1) < *argc && (*argv)[i + 1]) + { + (*argv)[i++] = NULL; + gdk_progclass = (*argv)[i]; + (*argv)[i] = NULL; + } + } #ifdef XINPUT_GXI - else if (strcmp ("--gxid_host", (*argv)[i]) == 0) - { - if ((i + 1) < *argc && (*argv)[i + 1]) - { - (*argv)[i++] = NULL; - gdk_input_gxid_host = ((*argv)[i]); - (*argv)[i] = NULL; - } - } - else if (strcmp ("--gxid_port", (*argv)[i]) == 0) - { - if ((i + 1) < *argc && (*argv)[i + 1]) - { - (*argv)[i++] = NULL; - gdk_input_gxid_port = atoi ((*argv)[i]); - (*argv)[i] = NULL; - } - } + else if (strcmp ("--gxid_host", (*argv)[i]) == 0) + { + if ((i + 1) < *argc && (*argv)[i + 1]) + { + (*argv)[i++] = NULL; + gdk_input_gxid_host = ((*argv)[i]); + (*argv)[i] = NULL; + } + } + else if (strcmp ("--gxid_port", (*argv)[i]) == 0) + { + if ((i + 1) < *argc && (*argv)[i + 1]) + { + (*argv)[i++] = NULL; + gdk_input_gxid_port = atoi ((*argv)[i]); + (*argv)[i] = NULL; + } + } #endif #ifdef USE_XIM - else if (strcmp ("--xim-preedit", (*argv)[i]) == 0) - { - if ((i + 1) < *argc && (*argv)[i + 1]) - { - (*argv)[i++] = NULL; - if (strcmp ("none", (*argv)[i]) == 0) - gdk_im_set_best_style (GdkIMPreeditNone); - else if (strcmp ("nothing", (*argv)[i]) == 0) - gdk_im_set_best_style (GdkIMPreeditNothing); - else if (strcmp ("area", (*argv)[i]) == 0) - gdk_im_set_best_style (GdkIMPreeditArea); - else if (strcmp ("position", (*argv)[i]) == 0) - gdk_im_set_best_style (GdkIMPreeditPosition); - else if (strcmp ("callbacks", (*argv)[i]) == 0) - gdk_im_set_best_style (GdkIMPreeditCallbacks); - } - } - else if (strcmp ("--xim-status", (*argv)[i]) == 0) - { - if ((i + 1) < *argc && (*argv)[i + 1]) - { - (*argv)[i++] = NULL; - if (strcmp ("none", (*argv)[i]) == 0) - gdk_im_set_best_style (GdkIMStatusNone); - else if (strcmp ("nothing", (*argv)[i]) == 0) - gdk_im_set_best_style (GdkIMStatusNothing); - else if (strcmp ("area", (*argv)[i]) == 0) - gdk_im_set_best_style (GdkIMStatusArea); - else if (strcmp ("callbacks", (*argv)[i]) == 0) - gdk_im_set_best_style (GdkIMStatusCallbacks); - } - } + else if (strcmp ("--xim-preedit", (*argv)[i]) == 0) + { + if ((i + 1) < *argc && (*argv)[i + 1]) + { + (*argv)[i++] = NULL; + if (strcmp ("none", (*argv)[i]) == 0) + gdk_im_set_best_style (GdkIMPreeditNone); + else if (strcmp ("nothing", (*argv)[i]) == 0) + gdk_im_set_best_style (GdkIMPreeditNothing); + else if (strcmp ("area", (*argv)[i]) == 0) + gdk_im_set_best_style (GdkIMPreeditArea); + else if (strcmp ("position", (*argv)[i]) == 0) + gdk_im_set_best_style (GdkIMPreeditPosition); + else if (strcmp ("callbacks", (*argv)[i]) == 0) + gdk_im_set_best_style (GdkIMPreeditCallbacks); + } + } + else if (strcmp ("--xim-status", (*argv)[i]) == 0) + { + if ((i + 1) < *argc && (*argv)[i + 1]) + { + (*argv)[i++] = NULL; + if (strcmp ("none", (*argv)[i]) == 0) + gdk_im_set_best_style (GdkIMStatusNone); + else if (strcmp ("nothing", (*argv)[i]) == 0) + gdk_im_set_best_style (GdkIMStatusNothing); + else if (strcmp ("area", (*argv)[i]) == 0) + gdk_im_set_best_style (GdkIMStatusArea); + else if (strcmp ("callbacks", (*argv)[i]) == 0) + gdk_im_set_best_style (GdkIMStatusCallbacks); + } + } #endif - + i += 1; } - + for (i = 1; i < *argc; i++) { for (k = i; k < *argc; k++) if ((*argv)[k] != NULL) break; - + if (k > i) { k -= i; @@ -496,34 +496,34 @@ gdk_init (int *argc, { gdk_progname = "<unknown>"; } - - GDK_NOTE (MISC, g_print ("Gdk: progname: \"%s\"\n", gdk_progname)); - + + GDK_NOTE (MISC, g_message ("progname: \"%s\"", gdk_progname)); + gdk_display = XOpenDisplay (gdk_display_name); if (!gdk_display) { g_warning ("cannot open display: %s", XDisplayName (gdk_display_name)); exit(1); } - + /* This is really crappy. We have to look into the display structure * to find the base resource id. This is only needed for recording * and playback of events. */ /* base_id = RESOURCE_BASE; */ base_id = 0; - GDK_NOTE (EVENTS, g_print ("base id: %lu\n", base_id)); - + GDK_NOTE (EVENTS, g_message ("base id: %lu", base_id)); + connection_number = ConnectionNumber (gdk_display); GDK_NOTE (MISC, - g_print ("Gdk: connection number: %d\n", connection_number)); - + g_message ("connection number: %d", connection_number)); + if (synchronize) XSynchronize (gdk_display, True); - + gdk_screen = DefaultScreen (gdk_display); gdk_root_window = RootWindow (gdk_display, gdk_screen); - + gdk_leader_window = XCreateSimpleWindow(gdk_display, gdk_root_window, 10, 10, 10, 10, 0, 0 , 0); class_hint = XAllocClassHint(); @@ -548,7 +548,7 @@ gdk_init (int *argc, gdk_wm_window_protocols[0] = gdk_wm_delete_window; gdk_wm_window_protocols[1] = gdk_wm_take_focus; gdk_selection_property = XInternAtom (gdk_display, "GDK_SELECTION", False); - + gdk_dnd.gdk_XdeEnter = gdk_atom_intern("_XDE_ENTER", FALSE); gdk_dnd.gdk_XdeLeave = gdk_atom_intern("_XDE_LEAVE", FALSE); gdk_dnd.gdk_XdeRequest = gdk_atom_intern("_XDE_REQUEST", FALSE); @@ -556,29 +556,29 @@ gdk_init (int *argc, gdk_dnd.gdk_XdeTypelist = gdk_atom_intern("_XDE_TYPELIST", FALSE); gdk_dnd.c->gdk_cursor_dragdefault = XCreateFontCursor(gdk_display, XC_bogosity); gdk_dnd.c->gdk_cursor_dragok = XCreateFontCursor(gdk_display, XC_heart); - + XGetKeyboardControl (gdk_display, &keyboard_state); autorepeat = keyboard_state.global_auto_repeat; - + timer.tv_sec = 0; timer.tv_usec = 0; timerp = NULL; - + button_click_time[0] = 0; button_click_time[1] = 0; button_window[0] = NULL; button_window[1] = NULL; button_number[0] = -1; button_number[1] = -1; - + if (ATEXIT (gdk_exit_func)) g_warning ("unable to register exit function"); - + gdk_visual_init (); gdk_window_init (); gdk_image_init (); gdk_input_init (); - + #ifdef USE_XIM /* initialize XIM Protocol variables */ xim_using = FALSE; @@ -590,10 +590,10 @@ gdk_init (int *argc, gdk_im_set_best_style (GdkIMStatusCallbacks); xim_ic = NULL; xim_window = (GdkWindow*)NULL; - + gdk_im_open (NULL, NULL, NULL); #endif - + gdk_initialized = 1; } @@ -619,9 +619,9 @@ gdk_init (int *argc, void gdk_exit (int errorcode) { - /* de-initialisation is done by the gdk_exit_funct(), - no need to do this here (Alex J.) */ - exit (errorcode); + /* de-initialisation is done by the gdk_exit_funct(), + no need to do this here (Alex J.) */ + exit (errorcode); } /* @@ -641,19 +641,19 @@ gchar* gdk_set_locale (void) { if (!setlocale (LC_ALL,"")) - g_print ("locale not supported by C library\n"); - + g_message ("locale not supported by C library"); + if (!XSupportsLocale ()) { - g_print ("locale not supported by Xlib, locale set to C\n"); + g_message ("locale not supported by Xlib, locale set to C"); setlocale (LC_ALL, "C"); } - + if (!XSetLocaleModifiers ("")) { - g_print ("can not set locale modifiers\n"); + g_message ("can not set locale modifiers"); } - + return setlocale (LC_ALL,NULL); } @@ -680,9 +680,9 @@ gdk_events_pending (void) { gint result; GList *tmp_list; - + result = XPending (gdk_display); - + tmp_list = putback_events; while (tmp_list) { @@ -717,7 +717,7 @@ graphics_expose_predicate (Display *display, GdkWindowPrivate *private = (GdkWindowPrivate *)arg; g_return_val_if_fail (private != NULL, False); - + if ((xevent->xany.window == private->xwindow) && ((xevent->xany.type == GraphicsExpose) || (xevent->xany.type == NoExpose))) @@ -733,20 +733,20 @@ gdk_event_get_graphics_expose (GdkWindow *window) GdkEvent *event; g_return_val_if_fail (window != NULL, NULL); - + XIfEvent (gdk_display, &xevent, graphics_expose_predicate, (XPointer)window); - + if (xevent.xany.type == GraphicsExpose) { event = gdk_event_new (); - + if (gdk_event_translate (event, &xevent)) return event; else gdk_event_free (event); } - return NULL; + return NULL; } /* @@ -775,7 +775,7 @@ gdk_event_get (void) GdkEvent *event; GList *temp_list; XEvent xevent; - + #if 0 if (pred) { @@ -783,7 +783,7 @@ gdk_event_get (void) while (temp_list) { temp_event = temp_list->data; - + if ((* pred) (temp_event, data)) { if (event) @@ -792,29 +792,29 @@ gdk_event_get (void) g_list_free (temp_list); return TRUE; } - + temp_list = temp_list->next; } - + event_pred.func = pred; event_pred.data = data; - + if (XCheckIfEvent (gdk_display, &xevent, gdk_event_get_type, (XPointer) & event_pred)) if (event) return gdk_event_translate (event, &xevent); } else #endif - if (putback_events) - { - event = putback_events->data; - - temp_list = putback_events; - putback_events = g_list_remove_link (putback_events, temp_list); - g_list_free_1 (temp_list); - - return event; - } + if (putback_events) + { + event = putback_events->data; + + temp_list = putback_events; + putback_events = g_list_remove_link (putback_events, temp_list); + g_list_free_1 (temp_list); + + return event; + } /* Wait for an event to occur or the timeout to elapse. * If an event occurs "gdk_event_wait" will return TRUE. @@ -841,7 +841,7 @@ gdk_event_get (void) XNextEvent (gdk_display, &xevent); #endif event = gdk_event_new (); - + event->any.type = GDK_NOTHING; event->any.window = NULL; event->any.send_event = FALSE; @@ -852,7 +852,7 @@ gdk_event_get (void) else gdk_event_free (event); } - + return NULL; } @@ -860,11 +860,11 @@ void gdk_event_put (GdkEvent *event) { GdkEvent *new_event; - + g_return_if_fail (event != NULL); - + new_event = gdk_event_copy (event); - + putback_events = g_list_prepend (putback_events, new_event); } @@ -898,9 +898,9 @@ gdk_event_new (void) sizeof (GdkEvent), 4096, G_ALLOC_AND_FREE); - + new_event = g_chunk_new (GdkEvent, event_chunk); - + return new_event; } @@ -910,25 +910,25 @@ gdk_event_copy (GdkEvent *event) GdkEvent *new_event; g_return_val_if_fail (event != NULL, NULL); - + new_event = gdk_event_new (); - + *new_event = *event; gdk_window_ref (new_event->any.window); - + switch (event->any.type) { case GDK_KEY_PRESS: case GDK_KEY_RELEASE: new_event->key.string = g_strdup (event->key.string); break; - + case GDK_ENTER_NOTIFY: case GDK_LEAVE_NOTIFY: if (event->crossing.subwindow != NULL) gdk_window_ref (event->crossing.subwindow); break; - + case GDK_DROP_DATA_AVAIL: new_event->dropdataavailable.data_type = g_strdup (event->dropdataavailable.data_type); new_event->dropdataavailable.data = g_malloc (event->dropdataavailable.data_numbytes); @@ -936,11 +936,11 @@ gdk_event_copy (GdkEvent *event) event->dropdataavailable.data, event->dropdataavailable.data_numbytes); break; - + default: break; } - + return new_event; } @@ -967,36 +967,36 @@ gdk_event_free (GdkEvent *event) { g_assert (event_chunk != NULL); g_return_if_fail (event != NULL); - + if (event->any.window) gdk_window_unref (event->any.window); - + switch (event->any.type) { case GDK_KEY_PRESS: case GDK_KEY_RELEASE: g_free (event->key.string); break; - + case GDK_ENTER_NOTIFY: case GDK_LEAVE_NOTIFY: if (event->crossing.subwindow != NULL) gdk_window_unref (event->crossing.subwindow); break; - + case GDK_DROP_DATA_AVAIL: g_free (event->dropdataavailable.data_type); g_free (event->dropdataavailable.data); break; - + case GDK_DRAG_REQUEST: g_free (event->dragrequest.data_type); break; - + default: break; } - + g_mem_chunk_free (event_chunk, event); } @@ -1073,9 +1073,9 @@ gdk_time_get (void) struct timeval end; struct timeval elapsed; guint32 milliseconds; - + X_GETTIMEOFDAY (&end); - + if (start.tv_usec > end.tv_usec) { end.tv_usec += 1000000; @@ -1083,9 +1083,9 @@ gdk_time_get (void) } elapsed.tv_sec = end.tv_sec - start.tv_sec; elapsed.tv_usec = end.tv_usec - start.tv_usec; - + milliseconds = (elapsed.tv_sec * 1000) + (elapsed.tv_usec / 1000); - + return milliseconds; } @@ -1138,7 +1138,7 @@ gdk_timer_set (guint32 milliseconds) timer_val = milliseconds; timer.tv_sec = milliseconds / 1000; timer.tv_usec = (milliseconds % 1000) * 1000; - + } void @@ -1154,25 +1154,25 @@ gdk_timer_disable (void) } gint -gdk_input_add_full (gint source, +gdk_input_add_full (gint source, GdkInputCondition condition, GdkInputFunction function, - gpointer data, + gpointer data, GdkDestroyNotify destroy) { static gint next_tag = 1; GList *list; GdkInput *input; gint tag; - + tag = 0; list = inputs; - + while (list) { input = list->data; list = list->next; - + if ((input->source == source) && (input->condition == condition)) { if (input->destroy) @@ -1183,7 +1183,7 @@ gdk_input_add_full (gint source, tag = input->tag; } } - + if (!tag) { input = g_new (GdkInput, 1); @@ -1194,18 +1194,18 @@ gdk_input_add_full (gint source, input->data = data; input->destroy = destroy; tag = input->tag; - + inputs = g_list_prepend (inputs, input); } - + return tag; } gint -gdk_input_add (gint source, +gdk_input_add (gint source, GdkInputCondition condition, - GdkInputFunction function, - gpointer data) + GdkInputFunction function, + gpointer data) { return gdk_input_add_interp (source, condition, function, data, NULL); } @@ -1215,23 +1215,23 @@ gdk_input_remove (gint tag) { GList *list; GdkInput *input; - + list = inputs; while (list) { input = list->data; - + if (input->tag == tag) { if (input->destroy) (input->destroy) (input->data); - - input->tag = 0; /* do not free it here */ - input->condition = 0; /* it's done in gdk_event_wait */ - + + input->tag = 0; /* do not free it here */ + input->condition = 0; /* it's done in gdk_event_wait */ + break; } - + list = list->next; } } @@ -1260,17 +1260,17 @@ gdk_input_remove (gint tag) */ gint -gdk_pointer_grab (GdkWindow * window, - gint owner_events, - GdkEventMask event_mask, - GdkWindow * confine_to, - GdkCursor * cursor, - guint32 time) +gdk_pointer_grab (GdkWindow * window, + gint owner_events, + GdkEventMask event_mask, + GdkWindow * confine_to, + GdkCursor * cursor, + guint32 time) { - /* From gdkwindow.c */ + /* From gdkwindow.c */ extern int nevent_masks; extern int event_mask_table[]; - + gint return_val; GdkWindowPrivate *window_private; GdkWindowPrivate *confine_to_private; @@ -1280,33 +1280,33 @@ gdk_pointer_grab (GdkWindow * window, Window xconfine_to; Cursor xcursor; int i; - + g_return_val_if_fail (window != NULL, 0); - + window_private = (GdkWindowPrivate*) window; confine_to_private = (GdkWindowPrivate*) confine_to; cursor_private = (GdkCursorPrivate*) cursor; - + xwindow = window_private->xwindow; - + if (!confine_to || confine_to_private->destroyed) xconfine_to = None; else xconfine_to = confine_to_private->xwindow; - + if (!cursor) xcursor = None; else xcursor = cursor_private->xcursor; - - + + xevent_mask = 0; for (i = 0; i < nevent_masks; i++) { if (event_mask & (1 << (i + 1))) xevent_mask |= event_mask_table[i]; } - + if (((GdkWindowPrivate *)window)->extension_events && gdk_input_vtable.grab_pointer) return_val = gdk_input_vtable.grab_pointer (window, @@ -1331,7 +1331,7 @@ gdk_pointer_grab (GdkWindow * window, else return_val = AlreadyGrabbed; } - + if (return_val == GrabSuccess) xgrab_window = window_private; @@ -1358,7 +1358,7 @@ gdk_pointer_ungrab (guint32 time) { if (gdk_input_vtable.ungrab_pointer) gdk_input_vtable.ungrab_pointer (time); - + XUngrabPointer (gdk_display, time); xgrab_window = NULL; } @@ -1405,18 +1405,18 @@ gdk_pointer_is_grabbed (void) */ gint -gdk_keyboard_grab (GdkWindow * window, - gint owner_events, - guint32 time) +gdk_keyboard_grab (GdkWindow * window, + gint owner_events, + guint32 time) { GdkWindowPrivate *window_private; Window xwindow; - + g_return_val_if_fail (window != NULL, 0); - + window_private = (GdkWindowPrivate*) window; xwindow = window_private->xwindow; - + if (!window_private->destroyed) return XGrabKeyboard (window_private->xdisplay, xwindow, @@ -1467,9 +1467,9 @@ gint gdk_screen_width (void) { gint return_val; - + return_val = DisplayWidth (gdk_display, gdk_screen); - + return return_val; } @@ -1492,9 +1492,9 @@ gint gdk_screen_height (void) { gint return_val; - + return_val = DisplayHeight (gdk_display, gdk_screen); - + return return_val; } @@ -1517,9 +1517,9 @@ gint gdk_screen_width_mm (void) { gint return_val; - + return_val = DisplayWidthMM (gdk_display, gdk_screen); - + return return_val; } @@ -1542,9 +1542,9 @@ gint gdk_screen_height_mm (void) { gint return_val; - + return_val = DisplayHeightMM (gdk_display, gdk_screen); - + return return_val; } @@ -1624,7 +1624,7 @@ gdk_event_wait (void) SELECT_MASK exceptfds; int max_input; int nfd; - + /* If there are no events pending we will wait for an event. * The time we wait is dependant on the "timer". If no timer * has been specified then we'll block until an event arrives. @@ -1632,21 +1632,21 @@ gdk_event_wait (void) * arrives or the timer expires. (This is all done using the * "select" system call). */ - + if (XPending (gdk_display) == 0) { FD_ZERO (&readfds); FD_ZERO (&writefds); FD_ZERO (&exceptfds); - + FD_SET (connection_number, &readfds); max_input = connection_number; - + list = inputs; while (list) { input = list->data; - + if (input->tag) { if (input->condition & GDK_INPUT_READ) @@ -1655,14 +1655,14 @@ gdk_event_wait (void) FD_SET (input->source, &writefds); if (input->condition & GDK_INPUT_EXCEPTION) FD_SET (input->source, &exceptfds); - + max_input = MAX (max_input, input->source); list = list->next; } - else /* free removed inputs */ + else /* free removed inputs */ { temp_list = list; - + if (list->next) list->next->prev = list->prev; if (list->prev) @@ -1671,28 +1671,28 @@ gdk_event_wait (void) inputs = list->next; list = list->next; - + temp_list->next = NULL; temp_list->prev = NULL; - + g_free (temp_list->data); g_list_free (temp_list); } } - + #ifdef USE_PTHREADS if (gdk_using_threads) { gdk_select_waiting = TRUE; - + FD_SET (gdk_threads_pipe[0], &readfds); max_input = MAX (max_input, gdk_threads_pipe[0]); gdk_threads_leave (); } #endif - + nfd = select (max_input+1, &readfds, &writefds, &exceptfds, timerp); - + #ifdef USE_PTHREADS if (gdk_using_threads) { @@ -1704,10 +1704,10 @@ gdk_event_wait (void) read (gdk_threads_pipe[0], &c, 1); } #endif - + timerp = NULL; timer_val = 0; - + if (nfd > 0) { if (FD_ISSET (connection_number, &readfds)) @@ -1724,13 +1724,13 @@ gdk_event_wait (void) else return TRUE; } - + list = inputs; while (list) { input = list->data; list = list->next; - + condition = 0; if (FD_ISSET (input->source, &readfds)) condition |= GDK_INPUT_READ; @@ -1738,7 +1738,7 @@ gdk_event_wait (void) condition |= GDK_INPUT_WRITE; if (FD_ISSET (input->source, &exceptfds)) condition |= GDK_INPUT_EXCEPTION; - + if (condition && input->function) (* input->function) (input->data, input->source, condition); } @@ -1746,7 +1746,7 @@ gdk_event_wait (void) } else return TRUE; - + return FALSE; } @@ -1758,20 +1758,20 @@ gdk_event_apply_filters (XEvent *xevent, GdkEventFilter *filter; GList *tmp_list; GdkFilterReturn result; - + tmp_list = filters; while (tmp_list) { filter = (GdkEventFilter *)tmp_list->data; - + result = (*filter->function)(xevent, event, filter->data); if (result != GDK_FILTER_CONTINUE) return result; - + tmp_list = tmp_list->next; } - + return GDK_FILTER_CONTINUE; } @@ -1779,7 +1779,7 @@ static gint gdk_event_translate (GdkEvent *event, XEvent *xevent) { - + GdkWindow *window; GdkWindowPrivate *window_private; static XComposeStatus compose; @@ -1792,13 +1792,13 @@ gdk_event_translate (GdkEvent *event, char buf[16]; #endif gint return_val; - + return_val = FALSE; - + /* We need to play catch-up with the dnd motion events */ if(gdk_dnd.drag_really && xevent->type == MotionNotify) - while (XCheckTypedEvent(xevent->xany.display,MotionNotify,xevent)); - + while (XCheckTypedEvent(xevent->xany.display,MotionNotify,xevent)); + /* Find the GdkWindow that this event occurred in. * All events occur in some GdkWindow (otherwise, why * would we be receiving them). It really is an error @@ -1807,30 +1807,30 @@ gdk_event_translate (GdkEvent *event, * specially - they are generated by XFree86's XInput under * some circumstances. */ - + if ((xevent->xany.window == None) && gdk_input_vtable.window_none_event) { return_val = gdk_input_vtable.window_none_event (event,xevent); - + if (return_val >= 0) /* was handled */ return return_val; else return_val = FALSE; } - + window = gdk_window_lookup (xevent->xany.window); window_private = (GdkWindowPrivate *) window; - + if (window != NULL) gdk_window_ref (window); else if(gdk_null_window_warnings) /* Special purpose programs that get events for other windows may want to disable this */ g_warning ("%#lx -> NULL\n", xevent->xany.window); - + /* Check for filters for this window */ - + { GdkFilterReturn result; result = gdk_event_apply_filters (xevent, event, @@ -1843,7 +1843,7 @@ gdk_event_translate (GdkEvent *event, return (result == GDK_FILTER_TRANSLATE) ? TRUE : FALSE; } } - + /* We do a "manual" conversion of the XEvent to a * GdkEvent. The structures are mostly the same so * the conversion is fairly straightforward. We also @@ -1861,12 +1861,12 @@ gdk_event_translate (GdkEvent *event, */ #ifdef USE_XIM if (buf_len == 0) - { + { buf_len = 128; buf = g_new (gchar, buf_len); } keysym = GDK_VoidSymbol; - + if (xim_using == TRUE && xim_ic) { Status status; @@ -1876,15 +1876,15 @@ gdk_event_translate (GdkEvent *event, &xevent->xkey, buf, buf_len-1, &keysym, &status); if (status == XBufferOverflow) - { /* retry */ + { /* retry */ /* alloc adequate size of buffer */ GDK_NOTE (XIM, - g_print("XIM: overflow (required %i)\n", charcount)); - + g_message("XIM: overflow (required %i)", charcount)); + while (buf_len <= charcount) buf_len *= 2; buf = (gchar *) g_realloc (buf, buf_len); - + charcount = XmbLookupString (xim_ic->xic, &xevent->xkey, buf, buf_len-1, &keysym, &status); @@ -1903,41 +1903,41 @@ gdk_event_translate (GdkEvent *event, &keysym, &compose); #endif event->key.keyval = keysym; - + if (charcount > 0 && buf[charcount-1] == '\0') charcount --; else buf[charcount] = '\0'; - + /* Print debugging info. */ #ifdef G_ENABLE_DEBUG if (gdk_debug_flags & GDK_DEBUG_EVENTS) { - g_print ("key press:\twindow: %ld key: %12s %d\n", - xevent->xkey.window - base_id, - event->key.keyval ? XKeysymToString (event->key.keyval) : "(none)", - event->key.keyval); + g_message ("key press:\twindow: %ld key: %12s %d", + xevent->xkey.window - base_id, + event->key.keyval ? XKeysymToString (event->key.keyval) : "(none)", + event->key.keyval); if (charcount > 0) - g_print ("\t\tlength: %4d string: \"%s\"\n", - charcount, buf); + g_message ("\t\tlength: %4d string: \"%s\"", + charcount, buf); } #endif /* G_ENABLE_DEBUG */ - + event->key.type = GDK_KEY_PRESS; event->key.window = window; event->key.time = xevent->xkey.time; event->key.state = (GdkModifierType) xevent->xkey.state; event->key.string = g_strdup (buf); event->key.length = charcount; - + return_val = window_private && !window_private->destroyed; if (!return_val) g_free (event->key.string); break; - + case KeyRelease: /* Lookup the string corresponding to the given keysym. */ @@ -1945,40 +1945,40 @@ gdk_event_translate (GdkEvent *event, charcount = XLookupString (&xevent->xkey, buf, 16, &keysym, &compose); event->key.keyval = keysym; - + /* Print debugging info. */ GDK_NOTE (EVENTS, - g_print ("key release:\t\twindow: %ld key: %12s %d\n", - xevent->xkey.window - base_id, - XKeysymToString (event->key.keyval), - event->key.keyval)); - + g_message ("key release:\t\twindow: %ld key: %12s %d", + xevent->xkey.window - base_id, + XKeysymToString (event->key.keyval), + event->key.keyval)); + event->key.type = GDK_KEY_RELEASE; event->key.window = window; event->key.time = xevent->xkey.time; event->key.state = (GdkModifierType) xevent->xkey.state; event->key.length = 0; event->key.string = NULL; - + return_val = window_private && !window_private->destroyed; break; - + case ButtonPress: /* Print debugging info. */ GDK_NOTE (EVENTS, - g_print ("button press[%d]:\t\twindow: %ld x,y: %d %d button: %d\n", - window_private?window_private->dnd_drag_enabled:0, - xevent->xbutton.window - base_id, - xevent->xbutton.x, xevent->xbutton.y, - xevent->xbutton.button)); - + g_message ("button press[%d]:\t\twindow: %ld x,y: %d %d button: %d", + window_private?window_private->dnd_drag_enabled:0, + xevent->xbutton.window - base_id, + xevent->xbutton.x, xevent->xbutton.y, + xevent->xbutton.button)); + if (window_private && (window_private->extension_events != 0) && gdk_input_ignore_core) break; - + event->button.type = GDK_BUTTON_PRESS; event->button.window = window; event->button.time = xevent->xbutton.time; @@ -1993,13 +1993,13 @@ gdk_event_translate (GdkEvent *event, event->button.button = xevent->xbutton.button; event->button.source = GDK_SOURCE_MOUSE; event->button.deviceid = GDK_CORE_POINTER; - + if ((event->button.time < (button_click_time[1] + TRIPLE_CLICK_TIME)) && (event->button.window == button_window[1]) && (event->button.button == button_number[1])) { gdk_synthesize_click (event, 3); - + button_click_time[1] = 0; button_click_time[0] = 0; button_window[1] = NULL; @@ -2012,7 +2012,7 @@ gdk_event_translate (GdkEvent *event, (event->button.button == button_number[0])) { gdk_synthesize_click (event, 2); - + button_click_time[1] = button_click_time[0]; button_click_time[0] = event->button.time; button_window[1] = button_window[0]; @@ -2047,13 +2047,13 @@ gdk_event_translate (GdkEvent *event, } gdk_dnd.drag_numwindows = gdk_dnd.drag_really = 0; gdk_dnd.dnd_grabbed = FALSE; - + { /* Set motion mask for first DnD'd window, since it will be the one that is actually dragged */ XWindowAttributes dnd_winattr; XSetWindowAttributes dnd_setwinattr; - + /* We need to get motion events while the button is down, so we can know whether to really start dragging or not... */ XGetWindowAttributes(gdk_display, (Window)window_private->xwindow, @@ -2062,29 +2062,29 @@ gdk_event_translate (GdkEvent *event, window_private->dnd_drag_savedeventmask = dnd_winattr.your_event_mask; dnd_setwinattr.event_mask = window_private->dnd_drag_eventmask = ButtonMotionMask | ButtonPressMask | ButtonReleaseMask | - EnterWindowMask | LeaveWindowMask | ExposureMask; + EnterWindowMask | LeaveWindowMask | ExposureMask; XChangeWindowAttributes(gdk_display, window_private->xwindow, CWEventMask, &dnd_setwinattr); + } } - } return_val = window_private && !window_private->destroyed; break; - + case ButtonRelease: /* Print debugging info. */ GDK_NOTE (EVENTS, - g_print ("button release[%d]:\twindow: %ld x,y: %d %d button: %d\n", - window_private?window_private->dnd_drag_enabled:0, - xevent->xbutton.window - base_id, - xevent->xbutton.x, xevent->xbutton.y, - xevent->xbutton.button)); - + g_message ("button release[%d]:\twindow: %ld x,y: %d %d button: %d", + window_private?window_private->dnd_drag_enabled:0, + xevent->xbutton.window - base_id, + xevent->xbutton.x, xevent->xbutton.y, + xevent->xbutton.button)); + if (window_private && (window_private->extension_events != 0) && gdk_input_ignore_core) break; - + event->button.type = GDK_BUTTON_RELEASE; event->button.window = window; event->button.time = xevent->xbutton.time; @@ -2099,7 +2099,7 @@ gdk_event_translate (GdkEvent *event, event->button.button = xevent->xbutton.button; event->button.source = GDK_SOURCE_MOUSE; event->button.deviceid = GDK_CORE_POINTER; - + gdk_dnd.last_drop_time = xevent->xbutton.time; if(gdk_dnd.drag_perhaps) { @@ -2109,7 +2109,7 @@ gdk_event_translate (GdkEvent *event, doesn't change during drag */ attrs.event_mask = gdk_dnd.real_sw->dnd_drag_savedeventmask; XChangeWindowAttributes(gdk_display, gdk_dnd.real_sw->xwindow, - CWEventMask, &attrs); + CWEventMask, &attrs); } if (gdk_dnd.dnd_grabbed) @@ -2121,51 +2121,51 @@ gdk_event_translate (GdkEvent *event, gdk_dnd.dnd_grabbed = FALSE; } - if(gdk_dnd.drag_really) - { - GdkPoint foo; - foo.x = xevent->xbutton.x_root; - foo.y = xevent->xbutton.y_root; - - if(gdk_dnd.dnd_drag_target != None) - gdk_dnd_drag_end(gdk_dnd.dnd_drag_target, foo); - gdk_dnd.drag_really = 0; - - gdk_dnd.drag_numwindows = 0; - if(gdk_dnd.drag_startwindows) + if(gdk_dnd.drag_really) { - g_free(gdk_dnd.drag_startwindows); - gdk_dnd.drag_startwindows = NULL; + GdkPoint foo; + foo.x = xevent->xbutton.x_root; + foo.y = xevent->xbutton.y_root; + + if(gdk_dnd.dnd_drag_target != None) + gdk_dnd_drag_end(gdk_dnd.dnd_drag_target, foo); + gdk_dnd.drag_really = 0; + + gdk_dnd.drag_numwindows = 0; + if(gdk_dnd.drag_startwindows) + { + g_free(gdk_dnd.drag_startwindows); + gdk_dnd.drag_startwindows = NULL; + } + + gdk_dnd.real_sw = NULL; } - - gdk_dnd.real_sw = NULL; - } - - gdk_dnd.drag_perhaps = 0; - gdk_dnd.dnd_drag_start.x = gdk_dnd.dnd_drag_start.y = 0; - gdk_dnd.dnd_drag_dropzone.x = gdk_dnd.dnd_drag_dropzone.y = 0; - gdk_dnd.dnd_drag_dropzone.width = gdk_dnd.dnd_drag_dropzone.height = 0; - gdk_dnd.dnd_drag_curwin = None; - return_val = window_private?TRUE:FALSE; - } else - return_val = window_private && !window_private->destroyed; + + gdk_dnd.drag_perhaps = 0; + gdk_dnd.dnd_drag_start.x = gdk_dnd.dnd_drag_start.y = 0; + gdk_dnd.dnd_drag_dropzone.x = gdk_dnd.dnd_drag_dropzone.y = 0; + gdk_dnd.dnd_drag_dropzone.width = gdk_dnd.dnd_drag_dropzone.height = 0; + gdk_dnd.dnd_drag_curwin = None; + return_val = window_private?TRUE:FALSE; + } else + return_val = window_private && !window_private->destroyed; break; - + case MotionNotify: /* Print debugging info. */ GDK_NOTE (EVENTS, - g_print ("motion notify:\t\twindow: %ld x,y: %d %d hint: %s d:%d r%d\n", - xevent->xmotion.window - base_id, - xevent->xmotion.x, xevent->xmotion.y, - (xevent->xmotion.is_hint) ? "true" : "false", - gdk_dnd.drag_perhaps, gdk_dnd.drag_really)); - + g_message ("motion notify:\t\twindow: %ld x,y: %d %d hint: %s d:%d r%d", + xevent->xmotion.window - base_id, + xevent->xmotion.x, xevent->xmotion.y, + (xevent->xmotion.is_hint) ? "true" : "false", + gdk_dnd.drag_perhaps, gdk_dnd.drag_really)); + if (window_private && (window_private->extension_events != 0) && gdk_input_ignore_core) break; - + event->motion.type = GDK_MOTION_NOTIFY; event->motion.window = window; event->motion.time = xevent->xmotion.time; @@ -2180,12 +2180,12 @@ gdk_event_translate (GdkEvent *event, event->motion.is_hint = xevent->xmotion.is_hint; event->motion.source = GDK_SOURCE_MOUSE; event->motion.deviceid = GDK_CORE_POINTER; - + #define IS_IN_ZONE(cx, cy) (cx >= gdk_dnd.dnd_drag_dropzone.x \ && cy >= gdk_dnd.dnd_drag_dropzone.y \ && cx < (gdk_dnd.dnd_drag_dropzone.x + gdk_dnd.dnd_drag_dropzone.width) \ && cy < (gdk_dnd.dnd_drag_dropzone.y + gdk_dnd.dnd_drag_dropzone.height)) - + if(gdk_dnd.drag_perhaps && gdk_dnd.drag_really /* && event->motion.is_hint */ /* HINTME */) { @@ -2199,13 +2199,13 @@ gdk_event_translate (GdkEvent *event, #endif Window childwin = gdk_root_window; int x, y, ox, oy; - + /* Interlude - display cursor for the drag ASAP */ gdk_dnd_display_drag_cursor(xevent->xmotion.x_root, xevent->xmotion.y_root, gdk_dnd.dnd_drag_target?TRUE:FALSE, FALSE); - + lastwin = curwin; curwin = gdk_root_window; ox = x = xevent->xmotion.x_root; @@ -2231,23 +2231,23 @@ gdk_event_translate (GdkEvent *event, } #endif GDK_NOTE (DND, - g_print("Drag is now in window %#lx, lastwin was %#lx, ddc = %#lx\n", - curwin, lastwin, gdk_dnd.dnd_drag_curwin)); + g_message("Drag is now in window %#lx, lastwin was %#lx, ddc = %#lx", + curwin, lastwin, gdk_dnd.dnd_drag_curwin)); if(curwin != gdk_dnd.dnd_drag_curwin && curwin != lastwin) { /* We have left one window and entered another (do leave & enter bits) */ if(gdk_dnd.dnd_drag_curwin != None) - gdk_dnd_drag_leave(gdk_dnd.dnd_drag_curwin); + gdk_dnd_drag_leave(gdk_dnd.dnd_drag_curwin); gdk_dnd.dnd_drag_curwin = curwin; gdk_dnd_drag_enter(gdk_dnd.dnd_drag_curwin); gdk_dnd.dnd_drag_dropzone.x = gdk_dnd.dnd_drag_dropzone.y = 0; gdk_dnd.dnd_drag_dropzone.width = gdk_dnd.dnd_drag_dropzone.height = 0; gdk_dnd.dnd_drag_target = None; GDK_NOTE (DND, - g_print("curwin = %#lx, lastwin = %#lx, dnd_drag_curwin = %#lx\n", - curwin, lastwin, gdk_dnd.dnd_drag_curwin)); - + g_message("curwin = %#lx, lastwin = %#lx, dnd_drag_curwin = %#lx", + curwin, lastwin, gdk_dnd.dnd_drag_curwin)); + gdk_dnd_display_drag_cursor(xevent->xmotion.x_root, xevent->xmotion.y_root, FALSE, TRUE); @@ -2263,7 +2263,7 @@ gdk_event_translate (GdkEvent *event, xevent->xmotion.y_root); gboolean old_in_zone = IS_IN_ZONE(gdk_dnd.dnd_drag_oldpos.x, gdk_dnd.dnd_drag_oldpos.y); - + if (!in_zone && old_in_zone) { /* We were in the drop zone and moved out */ @@ -2284,31 +2284,31 @@ gdk_event_translate (GdkEvent *event, } } } /* else - dnd_drag_curwin = None; */ + dnd_drag_curwin = None; */ return_val = FALSE; } else return_val = window_private && !window_private->destroyed; break; - + case EnterNotify: /* Print debugging info. */ GDK_NOTE (EVENTS, - g_print ("enter notify:\t\twindow: %ld detail: %d subwin: %ld\n", - xevent->xcrossing.window - base_id, - xevent->xcrossing.detail, - xevent->xcrossing.subwindow - base_id)); - + g_message ("enter notify:\t\twindow: %ld detail: %d subwin: %ld", + xevent->xcrossing.window - base_id, + xevent->xcrossing.detail, + xevent->xcrossing.subwindow - base_id)); + /* Tell XInput stuff about it if appropriate */ if (window_private && (window_private->extension_events != 0) && gdk_input_vtable.enter_event) gdk_input_vtable.enter_event (&xevent->xcrossing, window); - + event->crossing.type = GDK_ENTER_NOTIFY; event->crossing.window = window; - + /* If the subwindow field of the XEvent is non-NULL, then * lookup the corresponding GdkWindow. */ @@ -2316,13 +2316,13 @@ gdk_event_translate (GdkEvent *event, event->crossing.subwindow = gdk_window_lookup (xevent->xcrossing.subwindow); else event->crossing.subwindow = NULL; - + event->crossing.time = xevent->xcrossing.time; event->crossing.x = xevent->xcrossing.x; event->crossing.y = xevent->xcrossing.y; event->crossing.x_root = xevent->xcrossing.x_root; event->crossing.y_root = xevent->xcrossing.y_root; - + /* Translate the crossing mode into Gdk terms. */ switch (xevent->xcrossing.mode) @@ -2337,7 +2337,7 @@ gdk_event_translate (GdkEvent *event, event->crossing.mode = GDK_CROSSING_UNGRAB; break; }; - + /* Translate the crossing detail into Gdk terms. */ switch (xevent->xcrossing.detail) @@ -2361,52 +2361,52 @@ gdk_event_translate (GdkEvent *event, event->crossing.detail = GDK_NOTIFY_UNKNOWN; break; } - + event->crossing.focus = xevent->xcrossing.focus; event->crossing.state = xevent->xcrossing.state; - + #ifdef G_ENABLE_DEBUG - if ((gdk_debug_flags & GDK_DEBUG_DND) & gdk_dnd.drag_perhaps) - { - g_print("We may[%d] have a drag into %#lx = %#lx\n", + if ((gdk_debug_flags & GDK_DEBUG_DND) & gdk_dnd.drag_perhaps) + { + g_message("We may[%d] have a drag into %#lx = %#lx", gdk_dnd.drag_really, xevent->xcrossing.window, gdk_dnd.real_sw->xwindow); - } + } #endif /* G_ENABLE_DEBUG */ - - if (gdk_dnd.drag_perhaps && gdk_dnd.drag_really && - (xevent->xcrossing.window == gdk_dnd.real_sw->xwindow)) - { + + if (gdk_dnd.drag_perhaps && gdk_dnd.drag_really && + (xevent->xcrossing.window == gdk_dnd.real_sw->xwindow)) + { #if 0 - gdk_dnd.drag_really = 0; - - GDK_NOTE (DND, g_print("Ungrabbed\n")); - - gdk_dnd.drag_numwindows = 0; - g_free(gdk_dnd.drag_startwindows); - gdk_dnd.drag_startwindows = NULL; - /* We don't want to ungrab the pointer here, or we'll - * start getting spurious enter/leave events */ + gdk_dnd.drag_really = 0; + + GDK_NOTE (DND, g_message("Ungrabbed")); + + gdk_dnd.drag_numwindows = 0; + g_free(gdk_dnd.drag_startwindows); + gdk_dnd.drag_startwindows = NULL; + /* We don't want to ungrab the pointer here, or we'll + * start getting spurious enter/leave events */ #endif #if 0 - XChangeActivePointerGrab (gdk_display, 0, None, CurrentTime); + XChangeActivePointerGrab (gdk_display, 0, None, CurrentTime); #endif - } - - return_val = window_private && !window_private->destroyed; - break; - + } + + return_val = window_private && !window_private->destroyed; + break; + case LeaveNotify: /* Print debugging info. */ GDK_NOTE (EVENTS, - g_print ("leave notify:\t\twindow: %ld detail: %d subwin: %ld\n", - xevent->xcrossing.window - base_id, - xevent->xcrossing.detail, xevent->xcrossing.subwindow - base_id)); - + g_message ("leave notify:\t\twindow: %ld detail: %d subwin: %ld", + xevent->xcrossing.window - base_id, + xevent->xcrossing.detail, xevent->xcrossing.subwindow - base_id)); + event->crossing.type = GDK_LEAVE_NOTIFY; event->crossing.window = window; - + /* If the subwindow field of the XEvent is non-NULL, then * lookup the corresponding GdkWindow. */ @@ -2414,13 +2414,13 @@ gdk_event_translate (GdkEvent *event, event->crossing.subwindow = gdk_window_lookup (xevent->xcrossing.subwindow); else event->crossing.subwindow = NULL; - + event->crossing.time = xevent->xcrossing.time; event->crossing.x = xevent->xcrossing.x; event->crossing.y = xevent->xcrossing.y; event->crossing.x_root = xevent->xcrossing.x_root; event->crossing.y_root = xevent->xcrossing.y_root; - + /* Translate the crossing mode into Gdk terms. */ switch (xevent->xcrossing.mode) @@ -2435,7 +2435,7 @@ gdk_event_translate (GdkEvent *event, event->crossing.mode = GDK_CROSSING_UNGRAB; break; }; - + /* Translate the crossing detail into Gdk terms. */ switch (xevent->xcrossing.detail) @@ -2459,16 +2459,16 @@ gdk_event_translate (GdkEvent *event, event->crossing.detail = GDK_NOTIFY_UNKNOWN; break; } - + event->crossing.focus = xevent->xcrossing.focus; event->crossing.state = xevent->xcrossing.state; - + #ifdef G_ENABLE_DEBUG if ((gdk_debug_flags & GDK_DEBUG_DND) & gdk_dnd.drag_perhaps) { - g_print("We may[%d] have a drag out of %#lx = %#lx\n", - gdk_dnd.drag_really, - xevent->xcrossing.window, gdk_dnd.real_sw->xwindow); + g_message("We may[%d] have a drag out of %#lx = %#lx", + gdk_dnd.drag_really, + xevent->xcrossing.window, gdk_dnd.real_sw->xwindow); } #endif /* G_ENABLE_DEBUG */ if (gdk_dnd.drag_perhaps && !gdk_dnd.drag_really && @@ -2478,14 +2478,14 @@ gdk_event_translate (GdkEvent *event, gdk_dnd_drag_addwindow((GdkWindow *) gdk_dnd.real_sw); gdk_dnd_drag_begin((GdkWindow *) gdk_dnd.real_sw); xgpret = - XGrabPointer(gdk_display, gdk_dnd.real_sw->xwindow, False, - ButtonMotionMask | PointerMotionMask | - /* PointerMotionHintMask | */ /* HINTME */ - ButtonPressMask | ButtonReleaseMask, - GrabModeAsync, GrabModeAsync, None, - None, CurrentTime); + XGrabPointer(gdk_display, gdk_dnd.real_sw->xwindow, False, + ButtonMotionMask | PointerMotionMask | + /* PointerMotionHintMask | */ /* HINTME */ + ButtonPressMask | ButtonReleaseMask, + GrabModeAsync, GrabModeAsync, None, + None, CurrentTime); #ifdef G_ENABLE_DEBUG - GDK_NOTE(DND, g_print("xgpret = %d\n", xgpret)); + GDK_NOTE(DND, g_message("xgpret = %d", xgpret)); #endif gdk_dnd.dnd_grabbed = TRUE; gdk_dnd.drag_really = 1; @@ -2493,10 +2493,10 @@ gdk_event_translate (GdkEvent *event, xevent->xmotion.y_root, FALSE, TRUE); } - + return_val = window_private && !window_private->destroyed; break; - + case FocusIn: case FocusOut: /* We only care about focus events that indicate that _this_ @@ -2510,9 +2510,9 @@ gdk_event_translate (GdkEvent *event, /* Print debugging info. */ GDK_NOTE (EVENTS, - g_print ("focus %s:\t\twindow: %ld\n", - (xevent->xany.type == FocusIn) ? "in" : "out", - xevent->xfocus.window - base_id)); + g_message ("focus %s:\t\twindow: %ld", + (xevent->xany.type == FocusIn) ? "in" : "out", + xevent->xfocus.window - base_id)); event->focus_change.type = GDK_FOCUS_CHANGE; event->focus_change.window = window; @@ -2521,28 +2521,28 @@ gdk_event_translate (GdkEvent *event, return_val = window_private && !window_private->destroyed; break; default: - ; + ; } break; - + case KeymapNotify: /* Print debugging info. */ GDK_NOTE (EVENTS, - g_print ("keymap notify\n")); - + g_message ("keymap notify")); + /* Not currently handled */ break; - + case Expose: /* Print debugging info. */ GDK_NOTE (EVENTS, - g_print ("expose:\t\twindow: %ld %d x,y: %d %d w,h: %d %d\n", - xevent->xexpose.window - base_id, xevent->xexpose.count, - xevent->xexpose.x, xevent->xexpose.y, - xevent->xexpose.width, xevent->xexpose.height)); - + g_message ("expose:\t\twindow: %ld %d x,y: %d %d w,h: %d %d", + xevent->xexpose.window - base_id, xevent->xexpose.count, + xevent->xexpose.x, xevent->xexpose.y, + xevent->xexpose.width, xevent->xexpose.height)); + event->expose.type = GDK_EXPOSE; event->expose.window = window; event->expose.area.x = xevent->xexpose.x; @@ -2550,17 +2550,17 @@ gdk_event_translate (GdkEvent *event, event->expose.area.width = xevent->xexpose.width; event->expose.area.height = xevent->xexpose.height; event->expose.count = xevent->xexpose.count; - + return_val = window_private && !window_private->destroyed; break; - + case GraphicsExpose: /* Print debugging info. */ GDK_NOTE (EVENTS, - g_print ("graphics expose:\tdrawable: %ld\n", - xevent->xgraphicsexpose.drawable - base_id)); - + g_message ("graphics expose:\tdrawable: %ld", + xevent->xgraphicsexpose.drawable - base_id)); + event->expose.type = GDK_EXPOSE; event->expose.window = window; event->expose.area.x = xevent->xgraphicsexpose.x; @@ -2568,23 +2568,23 @@ gdk_event_translate (GdkEvent *event, event->expose.area.width = xevent->xgraphicsexpose.width; event->expose.area.height = xevent->xgraphicsexpose.height; event->expose.count = xevent->xexpose.count; - + return_val = window_private && !window_private->destroyed; break; - + case NoExpose: /* Print debugging info. */ GDK_NOTE (EVENTS, - g_print ("no expose:\t\tdrawable: %ld\n", - xevent->xnoexpose.drawable - base_id)); - + g_message ("no expose:\t\tdrawable: %ld", + xevent->xnoexpose.drawable - base_id)); + event->no_expose.type = GDK_NO_EXPOSE; event->no_expose.window = window; - + return_val = window_private && !window_private->destroyed; break; - + case VisibilityNotify: /* Print debugging info. */ @@ -2593,33 +2593,33 @@ gdk_event_translate (GdkEvent *event, switch (xevent->xvisibility.state) { case VisibilityFullyObscured: - g_print ("visibility notify:\twindow: %ld none\n", - xevent->xvisibility.window - base_id); + g_message ("visibility notify:\twindow: %ld none", + xevent->xvisibility.window - base_id); break; case VisibilityPartiallyObscured: - g_print ("visibility notify:\twindow: %ld partial\n", - xevent->xvisibility.window - base_id); + g_message ("visibility notify:\twindow: %ld partial", + xevent->xvisibility.window - base_id); break; case VisibilityUnobscured: - g_print ("visibility notify:\twindow: %ld full\n", - xevent->xvisibility.window - base_id); + g_message ("visibility notify:\twindow: %ld full", + xevent->xvisibility.window - base_id); break; } #endif /* G_ENABLE_DEBUG */ - + event->visibility.type = GDK_VISIBILITY_NOTIFY; event->visibility.window = window; - + switch (xevent->xvisibility.state) { case VisibilityFullyObscured: event->visibility.state = GDK_VISIBILITY_FULLY_OBSCURED; break; - + case VisibilityPartiallyObscured: event->visibility.state = GDK_VISIBILITY_PARTIAL; break; - + case VisibilityUnobscured: event->visibility.state = GDK_VISIBILITY_UNOBSCURED; break; @@ -2627,84 +2627,84 @@ gdk_event_translate (GdkEvent *event, return_val = window_private && !window_private->destroyed; break; - + case CreateNotify: /* Not currently handled */ break; - + case DestroyNotify: /* Print debugging info. */ GDK_NOTE (EVENTS, - g_print ("destroy notify:\twindow: %ld\n", - xevent->xdestroywindow.window - base_id)); - + g_message ("destroy notify:\twindow: %ld", + xevent->xdestroywindow.window - base_id)); + event->any.type = GDK_DESTROY; event->any.window = window; - + return_val = window_private && !window_private->destroyed; - + if(window && window_private->xwindow != GDK_ROOT_WINDOW()) - gdk_window_destroy_notify (window); + gdk_window_destroy_notify (window); break; - + case UnmapNotify: /* Print debugging info. */ GDK_NOTE (EVENTS, - g_print ("unmap notify:\t\twindow: %ld\n", - xevent->xmap.window - base_id)); - + g_message ("unmap notify:\t\twindow: %ld", + xevent->xmap.window - base_id)); + event->any.type = GDK_UNMAP; event->any.window = window; - + if (xgrab_window == window_private) xgrab_window = NULL; - + return_val = window_private && !window_private->destroyed; break; - + case MapNotify: /* Print debugging info. */ GDK_NOTE (EVENTS, - g_print ("map notify:\t\twindow: %ld\n", - xevent->xmap.window - base_id)); - + g_message ("map notify:\t\twindow: %ld", + xevent->xmap.window - base_id)); + event->any.type = GDK_MAP; event->any.window = window; - + return_val = window_private && !window_private->destroyed; break; - + case ReparentNotify: /* Print debugging info. */ GDK_NOTE (EVENTS, - g_print ("reparent notify:\twindow: %ld\n", - xevent->xreparent.window - base_id)); - + g_message ("reparent notify:\twindow: %ld", + xevent->xreparent.window - base_id)); + /* Not currently handled */ break; - + case ConfigureNotify: /* Print debugging info. */ while ((XPending (gdk_display) > 0) && XCheckTypedWindowEvent(gdk_display, xevent->xany.window, ConfigureNotify, xevent)) - { + { GdkFilterReturn result; - + GDK_NOTE (EVENTS, - g_print ("configure notify discarded:\twindow: %ld\n", - xevent->xconfigure.window - base_id)); - + g_message ("configure notify discarded:\twindow: %ld", + xevent->xconfigure.window - base_id)); + result = gdk_event_apply_filters (xevent, event, window_private ?window_private->filters :gdk_default_filters); - + /* If the result is GDK_FILTER_REMOVE, there will be * trouble, but anybody who filtering the Configure events * better know what they are doing @@ -2713,21 +2713,21 @@ gdk_event_translate (GdkEvent *event, { return (result == GDK_FILTER_TRANSLATE) ? TRUE : FALSE; } - - /*XSync (gdk_display, 0);*/ + + /*XSync (gdk_display, 0);*/ } - + GDK_NOTE (EVENTS, - g_print ("configure notify:\twindow: %ld x,y: %d %d w,h: %d %d b-w: %d above: %ld ovr: %d\n", - xevent->xconfigure.window - base_id, - xevent->xconfigure.x, - xevent->xconfigure.y, - xevent->xconfigure.width, - xevent->xconfigure.height, - xevent->xconfigure.border_width, - xevent->xconfigure.above - base_id, - xevent->xconfigure.override_redirect)); + g_message ("configure notify:\twindow: %ld x,y: %d %d w,h: %d %d b-w: %d above: %ld ovr: %d", + xevent->xconfigure.window - base_id, + xevent->xconfigure.x, + xevent->xconfigure.y, + xevent->xconfigure.width, + xevent->xconfigure.height, + xevent->xconfigure.border_width, + xevent->xconfigure.above - base_id, + xevent->xconfigure.override_redirect)); if (window_private) { @@ -2749,7 +2749,7 @@ gdk_event_translate (GdkEvent *event, gint tx = 0; gint ty = 0; Window child_window = 0; - + if (!XTranslateCoordinates (window_private->xdisplay, window_private->xwindow, gdk_root_window, @@ -2782,36 +2782,36 @@ gdk_event_translate (GdkEvent *event, /* Print debugging info. */ GDK_NOTE (EVENTS, - g_print ("property notify:\twindow: %ld\n", - xevent->xproperty.window - base_id)); - + g_message ("property notify:\twindow: %ld", + xevent->xproperty.window - base_id)); + event->property.type = GDK_PROPERTY_NOTIFY; event->property.window = window; event->property.atom = xevent->xproperty.atom; event->property.time = xevent->xproperty.time; event->property.state = xevent->xproperty.state; - + return_val = window_private && !window_private->destroyed; break; - + case SelectionClear: GDK_NOTE (EVENTS, - g_print ("selection clear:\twindow: %ld\n", - xevent->xproperty.window - base_id)); - + g_message ("selection clear:\twindow: %ld", + xevent->xproperty.window - base_id)); + event->selection.type = GDK_SELECTION_CLEAR; event->selection.window = window; event->selection.selection = xevent->xselectionclear.selection; event->selection.time = xevent->xselectionclear.time; - + return_val = window_private && !window_private->destroyed; break; - + case SelectionRequest: GDK_NOTE (EVENTS, - g_print ("selection request:\twindow: %ld\n", - xevent->xproperty.window - base_id)); - + g_message ("selection request:\twindow: %ld", + xevent->xproperty.window - base_id)); + event->selection.type = GDK_SELECTION_REQUEST; event->selection.window = window; event->selection.selection = xevent->xselectionrequest.selection; @@ -2819,43 +2819,43 @@ gdk_event_translate (GdkEvent *event, event->selection.property = xevent->xselectionrequest.property; event->selection.requestor = xevent->xselectionrequest.requestor; event->selection.time = xevent->xselectionrequest.time; - + return_val = window_private && !window_private->destroyed; break; - + case SelectionNotify: GDK_NOTE (EVENTS, - g_print ("selection notify:\twindow: %ld\n", - xevent->xproperty.window - base_id)); - - + g_message ("selection notify:\twindow: %ld", + xevent->xproperty.window - base_id)); + + event->selection.type = GDK_SELECTION_NOTIFY; event->selection.window = window; event->selection.selection = xevent->xselection.selection; event->selection.target = xevent->xselection.target; event->selection.property = xevent->xselection.property; event->selection.time = xevent->xselection.time; - + return_val = window_private && !window_private->destroyed; break; - + case ColormapNotify: /* Print debugging info. */ GDK_NOTE (EVENTS, - g_print ("colormap notify:\twindow: %ld\n", - xevent->xcolormap.window - base_id)); - + g_message ("colormap notify:\twindow: %ld", + xevent->xcolormap.window - base_id)); + /* Not currently handled */ break; - + case ClientMessage: /* Print debugging info. */ GDK_NOTE (EVENTS, - g_print ("client message:\twindow: %ld\n", - xevent->xclient.window - base_id)); - + g_message ("client message:\twindow: %ld", + xevent->xclient.window - base_id)); + /* Client messages are the means of the window manager * communicating with a program. We'll first check to * see if this is really the window manager talking @@ -2873,16 +2873,16 @@ gdk_event_translate (GdkEvent *event, * the event is passed along to the program, * which should then destroy the window. */ - + /* Print debugging info. */ GDK_NOTE (EVENTS, - g_print ("delete window:\t\twindow: %ld\n", - xevent->xclient.window - base_id)); - + g_message ("delete window:\t\twindow: %ld", + xevent->xclient.window - base_id)); + event->any.type = GDK_DELETE; event->any.window = window; - + return_val = window_private && !window_private->destroyed; } else if ((Atom) xevent->xclient.data.l[0] == gdk_wm_take_focus) @@ -2892,13 +2892,13 @@ gdk_event_translate (GdkEvent *event, else if (xevent->xclient.message_type == gdk_dnd.gdk_XdeEnter) { Atom reptype = 0; - + event->dropenter.u.allflags = xevent->xclient.data.l[1]; - - GDK_NOTE (DND, g_print ("GDK_DROP_ENTER [%d][%d]\n", - window_private->dnd_drop_enabled, event->dropenter.u.flags.sendreply)); + + GDK_NOTE (DND, g_message ("GDK_DROP_ENTER [%d][%d]", + window_private->dnd_drop_enabled, event->dropenter.u.flags.sendreply)); return_val = FALSE; - + /* Now figure out if we really want this drop... * If someone is trying funky clipboard stuff, ignore */ @@ -2908,35 +2908,35 @@ gdk_event_translate (GdkEvent *event, && (reptype = gdk_dnd_check_types (window, xevent))) { XEvent replyev; - + replyev.xclient.type = ClientMessage; replyev.xclient.window = xevent->xclient.data.l[0]; replyev.xclient.format = 32; replyev.xclient.message_type = gdk_dnd.gdk_XdeRequest; replyev.xclient.data.l[0] = window_private->xwindow; - + event->dragrequest.u.allflags = 0; event->dragrequest.u.flags.protocol_version = DND_PROTOCOL_VERSION; event->dragrequest.u.flags.willaccept = 1; event->dragrequest.u.flags.delete_data = (window_private->dnd_drop_destructive_op) ? 1 : 0; - + replyev.xclient.data.l[1] = event->dragrequest.u.allflags; replyev.xclient.data.l[2] = replyev.xclient.data.l[3] = 0; replyev.xclient.data.l[4] = reptype; - + if (!gdk_send_xevent (replyev.xclient.window, False, NoEventMask, &replyev)) - GDK_NOTE (DND, g_print("Sending XdeRequest to %#lx failed\n", - replyev.xclient.window)); - + GDK_NOTE (DND, g_message("Sending XdeRequest to %#lx failed", + replyev.xclient.window)); + event->any.type = GDK_DROP_ENTER; event->any.window = window; event->dropenter.requestor = replyev.xclient.window; event->dropenter.u.allflags = xevent->xclient.data.l[1]; - - GDK_NOTE (DND, g_print("We sent a GDK_DROP_ENTER on to Gtk\n")); + + GDK_NOTE (DND, g_message("We sent a GDK_DROP_ENTER on to Gtk")); return_val = TRUE; } } @@ -2944,9 +2944,9 @@ gdk_event_translate (GdkEvent *event, { #ifdef G_ENABLE_DEBUG if (gdk_debug_flags & (GDK_DEBUG_EVENTS | GDK_DEBUG_DND)) - g_print ("GDK_DROP_LEAVE\n"); + g_message ("GDK_DROP_LEAVE"); #endif - + if (window_private && window_private->dnd_drop_enabled) { event->dropleave.type = GDK_DROP_LEAVE; @@ -2966,11 +2966,11 @@ gdk_event_translate (GdkEvent *event, */ #ifdef G_ENABLE_DEBUG if (gdk_debug_flags & (GDK_DEBUG_EVENTS | GDK_DEBUG_DND)) - g_print ("GDK_DRAG_REQUEST\n"); + g_message ("GDK_DRAG_REQUEST"); #endif event->dragrequest.u.allflags = xevent->xclient.data.l[1]; return_val = FALSE; - + if (window && gdk_dnd.drag_really && xevent->xclient.data.l[0] == gdk_dnd.dnd_drag_curwin && event->dragrequest.u.flags.sendreply == 0) @@ -2995,7 +2995,7 @@ gdk_event_translate (GdkEvent *event, window_private->dnd_drag_accepted = 1; window_private->dnd_drag_data_type = xevent->xclient.data.l[4]; - + gdk_dnd.dnd_drag_target = gdk_dnd.dnd_drag_curwin; gdk_dnd_display_drag_cursor(-1, -1, TRUE, TRUE); } @@ -3008,56 +3008,56 @@ gdk_event_translate (GdkEvent *event, } } else if(xevent->xclient.message_type == gdk_dnd.gdk_XdeDataAvailable) - { - gint tmp_int; Atom tmp_atom; - gulong tmp_long; - guchar *tmp_charptr; - + { + gint tmp_int; Atom tmp_atom; + gulong tmp_long; + guchar *tmp_charptr; + #ifdef G_ENABLE_DEBUG if (gdk_debug_flags & (GDK_DEBUG_EVENTS | GDK_DEBUG_DND)) - g_print("GDK_DROP_DATA_AVAIL\n"); + g_message("GDK_DROP_DATA_AVAIL"); #endif - event->dropdataavailable.u.allflags = xevent->xclient.data.l[1]; - event->dropdataavailable.timestamp = xevent->xclient.data.l[4]; - event->dropdataavailable.coords.x = - xevent->xclient.data.l[3] & 0xffff; - event->dropdataavailable.coords.y = - (xevent->xclient.data.l[3] >> 16) & 0xffff; - if(window - /* No preview of data ATM */ - && event->dropdataavailable.u.flags.isdrop) - { - event->dropdataavailable.type = GDK_DROP_DATA_AVAIL; - event->dropdataavailable.window = window; - event->dropdataavailable.requestor = xevent->xclient.data.l[0]; - event->dropdataavailable.data_type = - gdk_atom_name(xevent->xclient.data.l[2]); - if(XGetWindowProperty (gdk_display, - event->dropdataavailable.requestor, - xevent->xclient.data.l[2], - 0, LONG_MAX - 1, - False, XA_PRIMARY, &tmp_atom, - &tmp_int, - &event->dropdataavailable.data_numbytes, - &tmp_long, - &tmp_charptr) - != Success) - { - g_warning("XGetWindowProperty on %#x may have failed\n", + event->dropdataavailable.u.allflags = xevent->xclient.data.l[1]; + event->dropdataavailable.timestamp = xevent->xclient.data.l[4]; + event->dropdataavailable.coords.x = + xevent->xclient.data.l[3] & 0xffff; + event->dropdataavailable.coords.y = + (xevent->xclient.data.l[3] >> 16) & 0xffff; + if(window + /* No preview of data ATM */ + && event->dropdataavailable.u.flags.isdrop) + { + event->dropdataavailable.type = GDK_DROP_DATA_AVAIL; + event->dropdataavailable.window = window; + event->dropdataavailable.requestor = xevent->xclient.data.l[0]; + event->dropdataavailable.data_type = + gdk_atom_name(xevent->xclient.data.l[2]); + if(XGetWindowProperty (gdk_display, + event->dropdataavailable.requestor, + xevent->xclient.data.l[2], + 0, LONG_MAX - 1, + False, XA_PRIMARY, &tmp_atom, + &tmp_int, + &event->dropdataavailable.data_numbytes, + &tmp_long, + &tmp_charptr) + != Success) + { + g_warning("XGetWindowProperty on %#x may have failed\n", event->dropdataavailable.requestor); - event->dropdataavailable.data = NULL; - } - else - { - GDK_NOTE (DND, g_print("XGetWindowProperty got us %ld bytes\n", - event->dropdataavailable.data_numbytes)); - event->dropdataavailable.data = - g_malloc (event->dropdataavailable.data_numbytes); - memcpy (event->dropdataavailable.data, - tmp_charptr, event->dropdataavailable.data_numbytes); - XFree(tmp_charptr); - return_val = TRUE; - } + event->dropdataavailable.data = NULL; + } + else + { + GDK_NOTE (DND, g_message("XGetWindowProperty got us %ld bytes", + event->dropdataavailable.data_numbytes)); + event->dropdataavailable.data = + g_malloc (event->dropdataavailable.data_numbytes); + memcpy (event->dropdataavailable.data, + tmp_charptr, event->dropdataavailable.data_numbytes); + XFree(tmp_charptr); + return_val = TRUE; + } return_val = TRUE; } } @@ -3083,28 +3083,28 @@ gdk_event_translate (GdkEvent *event, /* Print debugging info. */ GDK_NOTE (EVENTS, - g_print ("mapping notify\n")); - + g_message ("mapping notify")); + /* Let XLib know that there is a new keyboard mapping. */ XRefreshKeyboardMapping (&xevent->xmapping); break; - + default: /* something else - (e.g., a Xinput event) */ - + if (window_private && (window_private->extension_events != 0) && gdk_input_vtable.other_event) return_val = gdk_input_vtable.other_event(event, xevent, window); else return_val = FALSE; - + return_val = return_val && !window_private->destroyed; - + break; } - + if (return_val) { if (event->any.window) @@ -3120,10 +3120,10 @@ gdk_event_translate (GdkEvent *event, event->any.window = NULL; event->any.type = GDK_NOTHING; } - + if (window) gdk_window_unref (window); - + return return_val; } @@ -3135,28 +3135,28 @@ gdk_event_get_type (Display *display, { GdkEvent event; GdkPredicate *pred; - + if (gdk_event_translate (&event, xevent)) { pred = (GdkPredicate*) arg; return (* pred->func) (&event, pred->data); } - + return FALSE; } #endif static void gdk_synthesize_click (GdkEvent *event, - gint nclicks) + gint nclicks) { GdkEvent temp_event; - + g_return_if_fail (event != NULL); - + temp_event = *event; temp_event.type = (nclicks == 2) ? GDK_2BUTTON_PRESS : GDK_3BUTTON_PRESS; - + gdk_event_put (&temp_event); } @@ -3181,14 +3181,14 @@ static void gdk_exit_func (void) { static gboolean in_gdk_exit_func = FALSE; - + /* This is to avoid an infinite loop if a program segfaults in an atexit() handler (and yes, it does happen, especially if a program - has trounced over memory too badly for even g_print to work) */ + has trounced over memory too badly for even g_message to work) */ if (in_gdk_exit_func == TRUE) return; in_gdk_exit_func = TRUE; - + if (gdk_initialized) { #ifdef USE_XIM @@ -3200,7 +3200,7 @@ gdk_exit_func (void) gdk_image_exit (); gdk_input_exit (); gdk_key_repeat_restore (); - + XCloseDisplay (gdk_display); gdk_initialized = 0; } @@ -3229,11 +3229,11 @@ gdk_exit_func (void) */ static int -gdk_x_error (Display *display, +gdk_x_error (Display *display, XErrorEvent *error) { char buf[64]; - + if (gdk_error_warnings) { XGetErrorText (display, error->error_code, buf, 63); @@ -3244,7 +3244,7 @@ gdk_x_error (Display *display, error->request_code, error->minor_code); } - + gdk_error_code = -1; return 0; } @@ -3301,11 +3301,11 @@ gdk_signal (int sig_num) { static int caught_fatal_sig = 0; char *sig; - + if (caught_fatal_sig) kill (getpid (), sig_num); caught_fatal_sig = 1; - + switch (sig_num) { case SIGHUP: @@ -3333,8 +3333,8 @@ gdk_signal (int sig_num) sig = "unknown signal"; break; } - - g_print ("\n** ERROR **: %s caught\n", sig); + + g_message ("\n** ERROR **: %s caught", sig); #ifdef G_ENABLE_DEBUG abort (); #else /* !G_ENABLE_DEBUG */ @@ -3346,14 +3346,14 @@ static void gdk_dnd_drag_begin (GdkWindow *initial_window) { GdkEvent tev; - - GDK_NOTE(DND, g_print("------- STARTING DRAG from %p\n", initial_window)); - + + GDK_NOTE(DND, g_message("------- STARTING DRAG from %p", initial_window)); + tev.type = GDK_DRAG_BEGIN; tev.dragbegin.window = initial_window; tev.dragbegin.u.allflags = 0; tev.dragbegin.u.flags.protocol_version = DND_PROTOCOL_VERSION; - + gdk_event_put (&tev); } @@ -3369,7 +3369,7 @@ gdk_dnd_drag_enter (Window dest) sev.xclient.format = 32; sev.xclient.message_type = gdk_dnd.gdk_XdeEnter; sev.xclient.window = dest; - + tev.u.allflags = 0; tev.u.flags.protocol_version = DND_PROTOCOL_VERSION; tev.u.flags.sendreply = 1; @@ -3395,10 +3395,10 @@ gdk_dnd_drag_enter (Window dest) else sev.xclient.data.l[3] = sev.xclient.data.l[4] = None; if (!gdk_send_xevent (dest, False, StructureNotifyMask, &sev)) - GDK_NOTE (DND, g_print("Sending XdeEnter to %#lx failed\n", - dest)); + GDK_NOTE (DND, g_message("Sending XdeEnter to %#lx failed", + dest)); } - + } } @@ -3413,9 +3413,9 @@ gdk_dnd_drag_enter (Window dest) */ /* This needs to match XIMArg as defined in Xlcint.h exactly */ - + typedef struct { - gchar *name; + gchar *name; gpointer value; } GdkImArg; @@ -3433,7 +3433,7 @@ gdk_im_va_count (va_list list) { gint count = 0; gchar *name; - + name = va_arg (list, gchar *); while (name) { @@ -3441,7 +3441,7 @@ gdk_im_va_count (va_list list) (void)va_arg (list, gpointer); name = va_arg (list, gchar *); } - + return count; } @@ -3460,15 +3460,15 @@ gdk_im_va_to_nested (va_list list, guint count) { GdkImArg *result; GdkImArg *arg; - + gchar *name; - + if (count == 0) return NULL; - + result = g_new (GdkImArg, count+1); arg = result; - + name = va_arg (list, gchar *); while (name) { @@ -3477,9 +3477,9 @@ gdk_im_va_to_nested (va_list list, guint count) arg++; name = va_arg (list, gchar *); } - + arg->name = NULL; - + return (XVaNestedList)result; } @@ -3508,12 +3508,12 @@ gdk_im_begin (GdkIC ic, GdkWindow* window) { GdkICPrivate *private; Window xwin; - + g_return_if_fail (ic != NULL); g_return_if_fail (window); - + private = (GdkICPrivate *) ic; - + xim_using = TRUE; xim_ic = private; xim_window = window; @@ -3521,7 +3521,7 @@ gdk_im_begin (GdkIC ic, GdkWindow* window) { XGetICValues (private->xic, XNFocusWindow, &xwin, NULL); if (xwin != GDK_WINDOW_XWINDOW(window)) - XSetICValues (private->xic, XNFocusWindow, + XSetICValues (private->xic, XNFocusWindow, GDK_WINDOW_XWINDOW(window), NULL); if (private != xim_ic) XSetICFocus (private->xic); @@ -3563,13 +3563,13 @@ static GdkIMStyle gdk_im_choose_better_style (GdkIMStyle style1, GdkIMStyle style2) { GdkIMStyle s1, s2, u; - + if (style1 == 0) return style2; if (style2 == 0) return style1; if ((style1 & (GdkIMPreeditMask | GdkIMStatusMask)) - == (style2 & (GdkIMPreeditMask | GdkIMStatusMask))) + == (style2 & (GdkIMPreeditMask | GdkIMStatusMask))) return style1; - + s1 = style1 & GdkIMPreeditMask; s2 = style2 & GdkIMPreeditMask; u = s1 | s2; @@ -3603,9 +3603,9 @@ gdk_im_decide_style (GdkIMStyle supported_style) { gint i; GdkIMStyle style, tmp; - + g_return_val_if_fail (xim_styles != NULL, 0); - + style = 0; for (i=0; i<xim_styles->count_styles; i++) { @@ -3622,7 +3622,7 @@ gdk_im_set_best_style (GdkIMStyle style) if (style & GdkIMPreeditMask) { xim_best_allowed_style &= ~GdkIMPreeditMask; - + xim_best_allowed_style |= GdkIMPreeditNone; if (!(style & GdkIMPreeditNone)) { @@ -3642,7 +3642,7 @@ gdk_im_set_best_style (GdkIMStyle style) if (style & GdkIMStatusMask) { xim_best_allowed_style &= ~GdkIMStatusMask; - + xim_best_allowed_style |= GdkIMStatusNone; if (!(style & GdkIMStatusNone)) { @@ -3669,7 +3669,7 @@ gdk_im_open (XrmDatabase db, gchar* res_name, gchar* res_class) return FALSE; } XGetIMValues (xim_im, XNQueryInputStyle, &xim_styles, NULL, NULL); - + return TRUE; } @@ -3703,17 +3703,17 @@ gdk_ic_new (GdkWindow* client_window, GdkICPrivate *private; XVaNestedList preedit_attr = NULL; guint count; - + g_return_val_if_fail (client_window != NULL, NULL); g_return_val_if_fail (focus_window != NULL, NULL); g_return_val_if_fail (gdk_im_ready(), NULL); - + private = g_new (GdkICPrivate, 1); - + va_start (list, style); count = gdk_im_va_count (list); va_end (list); - + va_start (list, style); preedit_attr = gdk_im_va_to_nested (list, count); va_end (list); @@ -3725,14 +3725,14 @@ gdk_ic_new (GdkWindow* client_window, g_free (private); return NULL; } - + private->xic = XCreateIC(gdk_im_get (), - XNInputStyle, style, - XNClientWindow, GDK_WINDOW_XWINDOW (client_window), - XNFocusWindow, GDK_WINDOW_XWINDOW (focus_window), - preedit_attr? XNPreeditAttributes : NULL, preedit_attr, - NULL); - + XNInputStyle, style, + XNClientWindow, GDK_WINDOW_XWINDOW (client_window), + XNFocusWindow, GDK_WINDOW_XWINDOW (focus_window), + preedit_attr? XNPreeditAttributes : NULL, preedit_attr, + NULL); + g_free (preedit_attr); if (!private->xic) @@ -3740,7 +3740,7 @@ gdk_ic_new (GdkWindow* client_window, g_free (private); return NULL; } - + xim_ic_list = g_list_append (xim_ic_list, private); return private; } @@ -3749,14 +3749,14 @@ void gdk_ic_destroy (GdkIC ic) { GdkICPrivate *private; - + g_return_if_fail (ic != NULL); private = (GdkICPrivate *) ic; - + if (xim_ic == private) gdk_im_end (); - + XDestroyIC (private->xic); xim_ic_list = g_list_remove (xim_ic_list, private); g_free (private); @@ -3766,11 +3766,11 @@ GdkIMStyle gdk_ic_get_style (GdkIC ic) { GdkICPrivate *private; - + g_return_val_if_fail (ic != NULL, 0); - + private = (GdkICPrivate *) ic; - + return private->style; } @@ -3781,21 +3781,21 @@ gdk_ic_set_values (GdkIC ic, ...) XVaNestedList args; GdkICPrivate *private; guint count; - + g_return_if_fail (ic != NULL); - + private = (GdkICPrivate *) ic; - + va_start (list, ic); count = gdk_im_va_count (list); va_end (list); - + va_start (list, ic); args = gdk_im_va_to_nested (list, count); va_end (list); - + XSetICValues (private->xic, XNVaNestedList, args, NULL); - + g_free (args); } @@ -3806,21 +3806,21 @@ gdk_ic_get_values (GdkIC ic, ...) XVaNestedList args; GdkICPrivate *private; guint count; - + g_return_if_fail (ic != NULL); - + private = (GdkICPrivate *) ic; - + va_start (list, ic); count = gdk_im_va_count (list); va_end (list); - + va_start (list, ic); args = gdk_im_va_to_nested (list, count); va_end (list); - + XGetICValues (private->xic, XNVaNestedList, args, NULL); - + g_free (args); } @@ -3831,22 +3831,22 @@ gdk_ic_set_attr (GdkIC ic, const char *target, ...) XVaNestedList attr; GdkICPrivate *private; guint count; - + g_return_if_fail (ic != NULL); g_return_if_fail (target != NULL); - + private = (GdkICPrivate *) ic; - + va_start (list, target); count = gdk_im_va_count (list); va_end (list); - + va_start (list, target); attr = gdk_im_va_to_nested (list, count); va_end (list); - + XSetICValues (private->xic, target, attr, NULL); - + g_free (attr); } @@ -3857,22 +3857,22 @@ gdk_ic_get_attr (GdkIC ic, const char *target, ...) XVaNestedList attr; GdkICPrivate *private; guint count; - + g_return_if_fail (ic != NULL); g_return_if_fail (target != NULL); - + private = (GdkICPrivate *) ic; - + va_start (list, target); count = gdk_im_va_count (list); va_end (list); - + va_start (list, target); attr = gdk_im_va_to_nested (list, count); va_end (list); - + XGetICValues (private->xic, target, attr, NULL); - + g_free (attr); } @@ -3884,21 +3884,21 @@ gdk_ic_get_events (GdkIC ic) glong bit; GdkICPrivate *private; gint i; - - /* From gdkwindow.c */ + + /* From gdkwindow.c */ extern int nevent_masks; extern int event_mask_table[]; - + g_return_val_if_fail (ic != NULL, 0); - + private = (GdkICPrivate *) ic; - + if (XGetICValues (private->xic, XNFilterEvents, &xmask, NULL) != NULL) { GDK_NOTE (XIM, g_warning ("Call to XGetICValues: %s failed", XNFilterEvents)); return 0; } - + mask = 0; for (i=0, bit=2; i < nevent_masks; i++, bit <<= 1) if (xmask & event_mask_table [i]) @@ -3906,7 +3906,7 @@ gdk_ic_get_events (GdkIC ic) mask |= bit; xmask &= ~ event_mask_table [i]; } - + if (xmask) g_warning ("ic requires events not supported by the application (%#04lx)", xmask); @@ -3919,17 +3919,17 @@ gdk_ic_cleanup (void) GList* node; gint destroyed; GdkICPrivate *private; - + destroyed = 0; for (node = xim_ic_list; node != NULL; node = node->next) { if (node->data) - { - private = (GdkICPrivate *) (node->data); - XDestroyIC (private->xic); - g_free (private); - destroyed++; - } + { + private = (GdkICPrivate *) (node->data); + XDestroyIC (private->xic); + g_free (private); + destroyed++; + } } #ifdef G_ENABLE_DEBUG if ((gdk_debug_flags & GDK_DEBUG_XIM) && destroyed > 0) @@ -4025,10 +4025,10 @@ _g_mbtowc (wchar_t *wstr, const char *str, size_t len) { static wchar_t wcs[MB_CUR_MAX + 1]; static gchar mbs[MB_CUR_MAX + 1]; - + wcs[0] = (wchar_t) NULL; mbs[0] = '\0'; - + /* The last argument isn't a mistake. The X locale code trims * the input string to the length of the output string! */ @@ -4037,13 +4037,13 @@ _g_mbtowc (wchar_t *wstr, const char *str, size_t len) return len; else if (wcs[0] == (wchar_t) NULL) return -1; - + len = _Xwctomb (mbs, wcs[0]); if (mbs[0] == '\0') return -1; if (wstr) *wstr = wcs[0]; - + return len; } @@ -4056,9 +4056,9 @@ gdk_dnd_drag_leave (Window dest) GdkEventDropLeave tev; int i; GdkWindowPrivate *wp; - + tev.u.allflags = 0; - + tev.u.flags.protocol_version = DND_PROTOCOL_VERSION; sev.xclient.type = ClientMessage; sev.xclient.window = dest; @@ -4070,8 +4070,8 @@ gdk_dnd_drag_leave (Window dest) wp = (GdkWindowPrivate *) gdk_dnd.drag_startwindows[i]; sev.xclient.data.l[0] = wp->xwindow; if (!gdk_send_xevent (dest, False, StructureNotifyMask, &sev)) - GDK_NOTE (DND, g_print("Sending XdeLeave to %#lx failed\n", - dest)); + GDK_NOTE (DND, g_message("Sending XdeLeave to %#lx failed", + dest)); wp->dnd_drag_accepted = 0; } } @@ -4088,14 +4088,14 @@ gdk_dnd_drag_end (Window dest, GdkWindowPrivate *wp; GdkEvent tev; int i; - + tev.dragrequest.type = GDK_DRAG_REQUEST; tev.dragrequest.drop_coords = coords; tev.dragrequest.requestor = dest; tev.dragrequest.u.allflags = 0; tev.dragrequest.u.flags.protocol_version = DND_PROTOCOL_VERSION; tev.dragrequest.isdrop = 1; - + for (i = 0; i < gdk_dnd.drag_numwindows; i++) { wp = (GdkWindowPrivate *) gdk_dnd.drag_startwindows[i]; @@ -4103,32 +4103,32 @@ gdk_dnd_drag_end (Window dest, { tev.dragrequest.window = (GdkWindow *) wp; tev.dragrequest.u.flags.delete_data = wp->dnd_drag_destructive_op; - tev.dragrequest.timestamp = gdk_dnd.last_drop_time; + tev.dragrequest.timestamp = gdk_dnd.last_drop_time; tev.dragrequest.data_type = - gdk_atom_name(wp->dnd_drag_data_type); - + gdk_atom_name(wp->dnd_drag_data_type); + gdk_event_put(&tev); } } } static GdkAtom -gdk_dnd_check_types (GdkWindow *window, - XEvent *xevent) +gdk_dnd_check_types (GdkWindow *window, + XEvent *xevent) { GdkWindowPrivate *wp = (GdkWindowPrivate *) window; int i, j; GdkEventDropEnter event; - + g_return_val_if_fail(window != NULL, 0); g_return_val_if_fail(xevent != NULL, 0); g_return_val_if_fail(xevent->type == ClientMessage, 0); g_return_val_if_fail(xevent->xclient.message_type == gdk_dnd.gdk_XdeEnter, 0); - + if(wp->dnd_drop_data_numtypesavail <= 0 || !wp->dnd_drop_data_typesavail) return 0; - + for (i = 2; i <= 4; i++) { for (j = 0; j < wp->dnd_drop_data_numtypesavail; j++) @@ -4137,7 +4137,7 @@ gdk_dnd_check_types (GdkWindow *window, return xevent->xclient.data.l[i]; } } - + /* Now we get the extended type list if it's available */ event.u.allflags = xevent->xclient.data.l[1]; if (event.u.flags.extended_typelist) @@ -4145,21 +4145,21 @@ gdk_dnd_check_types (GdkWindow *window, Atom *exttypes, realtype; gulong nitems, nbar; gint realfmt; - + if (XGetWindowProperty(gdk_display, xevent->xclient.data.l[0], gdk_dnd.gdk_XdeTypelist, 0L, LONG_MAX - 1, False, AnyPropertyType, &realtype, &realfmt, &nitems, &nbar, (unsigned char **) &exttypes) - != Success) + != Success) return 0; - + if (realfmt != (sizeof(Atom) * 8)) { g_warning("XdeTypelist property had format of %d instead of the expected %ld, on window %#lx\n", realfmt, (glong)sizeof(Atom) * 8, xevent->xclient.data.l[0]); return 0; } - + for (i = 0; i <= nitems; i++) { for (j = 0; j < wp->dnd_drop_data_numtypesavail; j++) @@ -4185,7 +4185,7 @@ gdk_print_atom (GdkAtom anatom) { gchar *tmpstr = NULL; tmpstr = (anatom!=None)?gdk_atom_name(anatom):"(none)"; - g_print("Atom %lu has name %s\n", anatom, tmpstr); + g_message("Atom %lu has name %s", anatom, tmpstr); if(tmpstr) g_free(tmpstr); } @@ -4195,9 +4195,9 @@ gdk_print_atom (GdkAtom anatom) * used only by below routine and itself */ static Window -getchildren (Display *dpy, - Window win, - Atom WM_STATE) +getchildren (Display *dpy, + Window win, + Atom WM_STATE) { Window root, parent, *children, inf = 0; Atom type = None; @@ -4205,10 +4205,10 @@ getchildren (Display *dpy, int format; unsigned long nitems, after; unsigned char *data; - + if (XQueryTree(dpy, win, &root, &parent, &children, &nchildren) == 0) return 0; - + for (i = 0; !inf && (i < nchildren); i++) { XGetWindowProperty (dpy, children[i], WM_STATE, 0, 0, False, @@ -4218,13 +4218,13 @@ getchildren (Display *dpy, inf = children[i]; XFree(data); } - + for (i = 0; !inf && (i < nchildren); i++) inf = getchildren (dpy, children[i], WM_STATE); - + if (children != None) XFree ((char *) children); - + return inf; } @@ -4234,8 +4234,8 @@ getchildren (Display *dpy, * modification of the XmuClientWindow() routine from X11R6.3 */ Window -gdk_get_client_window (Display *dpy, - Window win) +gdk_get_client_window (Display *dpy, + Window win) { Atom WM_STATE; Atom type = None; @@ -4243,20 +4243,20 @@ gdk_get_client_window (Display *dpy, unsigned long nitems, after; unsigned char *data; Window inf; - + if (win == 0) return DefaultRootWindow(dpy); - + if ((WM_STATE = XInternAtom (dpy, "WM_STATE", True)) == 0) return win; - + XGetWindowProperty (dpy, win, WM_STATE, 0, 0, False, AnyPropertyType, &type, &format, &nitems, &after, &data); if (type) return win; - + inf = getchildren (dpy, win, WM_STATE); - + if (inf == 0) return win; else @@ -4273,13 +4273,13 @@ gdk_drop_get_real_window (GdkWindow *w, GdkWindowPrivate *awin; GList *children; gint16 myx = *x, myy = *y; - + g_return_val_if_fail (w != NULL && x != NULL && y != NULL, NULL); - + myx = *x; myy = *y; - -descend: + + descend: for (children = gdk_window_get_children(retval); children && children->next; children = children->next) @@ -4295,10 +4295,10 @@ descend: goto descend; } } - + *x = myx; *y = myy; - + return retval; } #endif @@ -4311,9 +4311,9 @@ gdk_event_send_clientmessage_toall (GdkEvent *event) Window *ret_children, ret_root, ret_parent, curwin; unsigned int ret_nchildren; int i; - + g_return_if_fail(event != NULL); - + /* Set up our event to send, with the exception of its target window */ sev.xclient.type = ClientMessage; sev.xclient.display = gdk_display; @@ -4321,21 +4321,21 @@ gdk_event_send_clientmessage_toall (GdkEvent *event) sev.xclient.serial = CurrentTime; memcpy(&sev.xclient.data, &event->client.data, sizeof(sev.xclient.data)); sev.xclient.message_type = event->client.message_type; - + /* OK, we're all set, now let's find some windows to send this to */ if(XQueryTree(gdk_display, gdk_root_window, &ret_root, &ret_parent, &ret_children, &ret_nchildren) != True) return; - + /* foreach true child window of the root window, send an event to it */ for(i = 0; i < ret_nchildren; i++) { curwin = gdk_get_client_window(gdk_display, ret_children[i]); sev.xclient.window = curwin; if (!gdk_send_xevent (curwin, False, NoEventMask, &sev)) - GDK_NOTE (MISC, g_print("Gdk: Sending client message %ld to %#lx failed\n", - event->client.message_type, curwin)); + GDK_NOTE (MISC, g_message ("Sending client message %ld to %#lx failed", + event->client.message_type, curwin)); } - + XFree(ret_children); } @@ -4357,7 +4357,7 @@ gdk_send_xevent (Window window, gboolean propagate, glong event_mask, result = XSendEvent (gdk_display, window, propagate, event_mask, event_send); XSync (gdk_display, False); gdk_error_warnings = 1; - + return result && (gdk_error_code != -1); } @@ -4371,13 +4371,13 @@ gdkx_XConvertCase (KeySym symbol, KeySym *upper) { register KeySym sym = symbol; - + g_return_if_fail (lower != NULL); g_return_if_fail (upper != NULL); - + *lower = sym; *upper = sym; - + switch (sym >> 8) { #if defined (GDK_A) && defined (GDK_Ooblique) @@ -4472,7 +4472,7 @@ gdkx_XConvertCase (KeySym symbol, *upper += (GDK_Cyrillic_YU - GDK_Cyrillic_yu); break; #endif /* CYRILLIC */ - + #if defined (GDK_Greek_ALPHAaccent) && defined (GDK_Greek_finalsmallsigma) case 7: /* Greek */ /* Assume the KeySym is a legal value (ignore discontinuities) */ @@ -4494,7 +4494,7 @@ gdkx_XConvertCase (KeySym symbol, #endif gchar* -gdk_keyval_name (guint keyval) +gdk_keyval_name (guint keyval) { return XKeysymToString (keyval); } @@ -4503,18 +4503,18 @@ guint gdk_keyval_from_name (const gchar *keyval_name) { g_return_val_if_fail (keyval_name != NULL, 0); - + return XStringToKeysym (keyval_name); } guint -gdk_keyval_to_upper (guint keyval) +gdk_keyval_to_upper (guint keyval) { if (keyval) { KeySym lower_val = 0; KeySym upper_val = 0; - + XConvertCase (keyval, &lower_val, &upper_val); return upper_val; } @@ -4522,13 +4522,13 @@ gdk_keyval_to_upper (guint keyval) } guint -gdk_keyval_to_lower (guint keyval) +gdk_keyval_to_lower (guint keyval) { if (keyval) { KeySym lower_val = 0; KeySym upper_val = 0; - + XConvertCase (keyval, &lower_val, &upper_val); return lower_val; } @@ -4536,13 +4536,13 @@ gdk_keyval_to_lower (guint keyval) } gboolean -gdk_keyval_is_upper (guint keyval) +gdk_keyval_is_upper (guint keyval) { if (keyval) { KeySym lower_val = 0; KeySym upper_val = 0; - + XConvertCase (keyval, &lower_val, &upper_val); return upper_val == keyval; } @@ -4550,13 +4550,13 @@ gdk_keyval_is_upper (guint keyval) } gboolean -gdk_keyval_is_lower (guint keyval) +gdk_keyval_is_lower (guint keyval) { if (keyval) { KeySym lower_val = 0; KeySym upper_val = 0; - + XConvertCase (keyval, &lower_val, &upper_val); return lower_val == keyval; } diff --git a/gdk/x11/gdkvisual-x11.c b/gdk/x11/gdkvisual-x11.c index e7bf1648cc..693020ef61 100644 --- a/gdk/x11/gdkvisual-x11.c +++ b/gdk/x11/gdkvisual-x11.c @@ -211,9 +211,9 @@ gdk_visual_init (void) #ifdef G_ENABLE_DEBUG if (gdk_debug_flags & GDK_DEBUG_MISC) for (i = 0; i < nvisuals; i++) - g_print ("Gdk: visual: %s: %d\n", - visual_names[visuals[i].visual.type], - visuals[i].visual.depth); + g_message ("visual: %s: %d", + visual_names[visuals[i].visual.type], + visuals[i].visual.depth); #endif /* G_ENABLE_DEBUG */ navailable_depths = 0; diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c index 5c1feb2e3a..8c8623d4b0 100644 --- a/gdk/x11/gdkwindow-x11.c +++ b/gdk/x11/gdkwindow-x11.c @@ -407,7 +407,7 @@ gdk_window_new (GdkWindow *parent, (private->colormap != gdk_colormap_get_system ()) && (private->colormap != gdk_window_get_colormap (gdk_window_get_toplevel (window)))) { - GDK_NOTE (MISC, g_print ("adding colormap window\n")); + GDK_NOTE (MISC, g_message ("adding colormap window\n")); gdk_window_add_colormap_windows (window); } @@ -1771,7 +1771,7 @@ gdk_window_dnd_data_set (GdkWindow *window, data_numbytes); tmp = gdk_atom_name(window_private->dnd_drag_data_type); #ifdef DEBUG_DND - g_print("DnD type %s on window %ld\n", tmp, window_private->xwindow); + g_message("DnD type %s on window %ld\n", tmp, window_private->xwindow); #endif g_free(tmp); @@ -1801,9 +1801,8 @@ gdk_window_dnd_data_set (GdkWindow *window, if (!gdk_send_xevent (event->dragrequest.requestor, False, StructureNotifyMask, &sev)) - GDK_NOTE (DND, g_print("Sending XdeDataAvailable to %#x failed\n", - event->dragrequest.requestor)); - + GDK_NOTE (DND, g_message("Sending XdeDataAvailable to %#x failed\n", + event->dragrequest.requestor)); } void |