Commit Graph

8 Commits

Author SHA1 Message Date
Owen Taylor
55b0689a1d Substantially rework the handling of status windows:
Mon Aug 18 17:19:12 2003  Owen Taylor  <otaylor@redhat.com>

        * modules/input/gtkimcontextxim.[ch]: Substantially
        rework the handling of status windows:

         - Store the current StatusWindow in the
           GtkIMContextXIM structure and vice-versa, so we
           don't have to hunt the window hierarchy on
           cleanup.
         - Use the Gtkidget hierarchy instead of/or as well
           as the GdkWindow hierarchy when finding the toplevel;
           this helps for things like GtkHandlebox
         - Watch GtkWidget::hierarchy_changed to catch
           changes in the toplevel without changes in the
           GdkWindow (reparenting)
         - Never create the GtkWindow for the status window
           unless we have text to display.
         - Various cleanups, add lots of comments.

        (#115077, much help from Takuro Ashie and Hidetoshi
        Tajima in tracking this down and figuring out a fix.)

        * modules/input/gtkimcontextxim.c (gtk_im_context_xim_focus_in):

        * modules/input/gtkimcontextxim.c: Track the current
        screen for each toplevel so that we show the status
        window on the right screen. (#116340, James Su)

        * modules/input/gtkimcontextxim.c: If create a new IC
        when we currently have the focus, call XSetICFocus()
        on it.

        * modules/input/gtkimcontextxim.c (get_im): Fix bug
        with multiple open screens.
2003-08-19 21:17:18 +00:00
Hidetoshi Tajima
16191e5274 Add a 'finalizing' flag to keep preedit-[start,changed,end] signals from
Fri Jun  6 11:05:45 2003  Hidetoshi Tajima  <hidetoshi.tajima@sun.com>

	* modules/input/gtkimcontextxim.h (struct _GtkIMContextXIM):
	* modules/input/gtkimcontextxim.c (preedit_start_callback,
	preedit_draw_callback, preedit_done_callback): Add a 'finalizing' flag
	to keep preedit-[start,changed,end] signals from being called during
	finalization (#111861).
2003-06-06 19:42:10 +00:00
Hidetoshi Tajima
2589ff07b3 modify a warning when XSetLocaleModifiers() fails, and add a warning when
* modules/input/gtkimcontextxim.c
	(get_im): modify a warning when XSetLocaleModifiers() fails, and
	add a warning when XOpenIM() fails
	(gtk_im_context_xim_filter_keypress): use XLookupString when xic
	is not available. (#90661)
	(gtk_im_context_xim_get_ic, gtk_im_with_preedit,
	gtk_im_without_preeedit): filter key release events only when
	input methods ask for (#81759)
2002-09-10 16:49:44 +00:00
Owen Taylor
3fe86a489d Protect against reentrancy problems by emitting ::preedit_changed at the
Fri May 17 14:40:24 2002  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkimmulticontext.c (gtk_im_multicontext_set_slave):
        Protect against reentrancy problems by emitting
        ::preedit_changed at the end, fixing input context
        leak. (Yao Zhang)

        * modules/input/gtkimcontextxim.c (status_window_free):
        Patch from Federico Mena Quintero to fix problem where
        references to IMContextXIM were kept around after
        module was unloaded.

        * gtk/gtkdnd.c (gtk_drag_dest_set): NULL initialize
        proxy window.
2002-05-17 19:27:53 +00:00
Alex Larsson
7df4f0fb5e Make multihead-safe; use a different IM context per display.
Tue Apr 30 11:37:09 2002  Owen Taylor  <otaylor@redhat.com>

        * modules/input/gtkimcontextxim.c: Make multihead-safe;
        use a different IM context per display.

        * configure.in acconfig.h: Add Xinerama checks from
        multihead branch, changing HAS_XINERAMA => HAVE_XINERAMA.

        * gdk/x11/gdkdisplay-x11.c: HAS_XINERAMA => HAVE_XINERAMA.

2002-04-29  Alex Larsson  <alexl@redhat.com>

        * gdk/gdkpango.c (gdk_draw_layout_line_with_colors):
        Use tmp also if foreground is set.
2002-04-30 15:51:29 +00:00
Owen Taylor
9fd70c6bf5 Display the XIM status callbacks with a popup window. (Patch from
Fri Dec  7 16:05:22 2001  Owen Taylor  <otaylor@redhat.com>

        * modules/input/gtkimcontextxim.c: Display the XIM
        status callbacks with a popup window. (Patch from
        HideToshi Tajima, #50628, somewhat modified.)
2001-12-07 23:15:32 +00:00
Owen Taylor
7f63b5db98 Patch from HideToshi Tajima (#51922)
Fri Nov  2 15:30:34 2001  Owen Taylor  <otaylor@redhat.com>

        Patch from HideToshi Tajima (#51922)

        * gtk/gtkimmulticontext.c: Proxy set_use_preedit().

        * gtk/modules/input/gtkimcontextxim.[ch]: Implement
        set_use_preedit().

        * gtk/modules/input/gtkimcontextxim.[ch]: If we have
        to destroy the input context because we change the
        client window or use_preedit, make sure we empty
        the preedit string.
2001-11-02 20:48:15 +00:00
Owen Taylor
b9d3287313 Rip out support for multiple locales; that simple doesn't work reliably
Tue Sep 19 10:54:22 2000  Owen Taylor  <otaylor@redhat.com>

	* modules/input/{gtkimcontextxim.[ch],imxim.c}: Rip
	out support for multiple locales; that simple doesn't
	work reliably with current Xlib

	* gtk/gtkimcontext*.[ch] gtk/gtkimmulticontext.[ch]
	gtk/gtktextlayout.[ch] gtk/gtktextview.c gtk/gtkentry.c:
	Add support for positioning the cursor within the preedit string.

Mon Sep 18 23:56:32 2000  Owen Taylor  <otaylor@redhat.com>

	* modules/input/{imxim.c,gtkimcontextxim.[ch]}: Start
	at XIM input method module.

Sun Sep 17 10:08:16 2000  Owen Taylor  <otaylor@redhat.com>

	* modules/input/Makefile.am (moduledir): remove
	leftover bin program target.

Sat Sep 16 13:05:48 2000  Owen Taylor  <otaylor@redhat.com>

	* modules/input/imcyrillic-translit.c: A sample input
	method (based on GtkIMContextSimple with an extra table),
	which demonstrates preedit strings and the module
	system for input modules
2000-11-12 03:40:47 +00:00