mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-12-25 05:01:09 +00:00
disable/enable preedit/status in GtkIMContextXIM (#59076)
* gnome-settings-xsettings.c: added two new xsettings for GTK+ input method preedit and status styles. With the other patch for gtk+, the preedit and status styles of GTK+ input method are configurable with associated gconf schemas keys: "/desktop/gnome/interface/gtk-im-preedit-style" "/desktop/gnome/interface/gtk-im-status-style" Both are set to "callback" by default, and platform's packging can have different default by changing libgnome's desktop_gnome_interface.schemas.
This commit is contained in:
parent
7a1a8a5f37
commit
8cc9e8cfa9
21
ChangeLog
21
ChangeLog
@ -1,3 +1,24 @@
|
|||||||
|
Tue Sep 24 15:35:42 2002 HideToshi Tajima <hidetoshi.tajima@sun.com>
|
||||||
|
|
||||||
|
disable/enable preedit/status in GtkIMContextXIM (#59076)
|
||||||
|
|
||||||
|
* gtk/gtkenums.h (enum): added preedit/status styles for gtk+
|
||||||
|
input method
|
||||||
|
* modules/input/gtkimcontextxim.c
|
||||||
|
* gdk/x11/gdkevents-x11.c: add gtk-im-preedit-style and
|
||||||
|
gtk-im-status-style to GtkSettings.
|
||||||
|
* po/POTFILES.in: added modules/input/gtkimcontextxim.c
|
||||||
|
|
||||||
|
With the other patch for gnome-control-center,
|
||||||
|
the preedit and status styles of GTK+ input method are
|
||||||
|
configurable with associated gconf schemas keys:
|
||||||
|
"/desktop/gnome/interface/gtk-im-preedit-style"
|
||||||
|
"/desktop/gnome/interface/gtk-im-status-style"
|
||||||
|
|
||||||
|
Both are set to "callback" by default, and platform's
|
||||||
|
packging can have different default by changing
|
||||||
|
libgnome's desktop_gnome_interface.schemas.
|
||||||
|
|
||||||
2002-09-25 Matthias Clasen <maclas@gmx.de>
|
2002-09-25 Matthias Clasen <maclas@gmx.de>
|
||||||
|
|
||||||
* gdk/x11/gdkvisual-x11.c (gdkx_visual_get): Replace leftover
|
* gdk/x11/gdkvisual-x11.c (gdkx_visual_get): Replace leftover
|
||||||
|
@ -1,3 +1,24 @@
|
|||||||
|
Tue Sep 24 15:35:42 2002 HideToshi Tajima <hidetoshi.tajima@sun.com>
|
||||||
|
|
||||||
|
disable/enable preedit/status in GtkIMContextXIM (#59076)
|
||||||
|
|
||||||
|
* gtk/gtkenums.h (enum): added preedit/status styles for gtk+
|
||||||
|
input method
|
||||||
|
* modules/input/gtkimcontextxim.c
|
||||||
|
* gdk/x11/gdkevents-x11.c: add gtk-im-preedit-style and
|
||||||
|
gtk-im-status-style to GtkSettings.
|
||||||
|
* po/POTFILES.in: added modules/input/gtkimcontextxim.c
|
||||||
|
|
||||||
|
With the other patch for gnome-control-center,
|
||||||
|
the preedit and status styles of GTK+ input method are
|
||||||
|
configurable with associated gconf schemas keys:
|
||||||
|
"/desktop/gnome/interface/gtk-im-preedit-style"
|
||||||
|
"/desktop/gnome/interface/gtk-im-status-style"
|
||||||
|
|
||||||
|
Both are set to "callback" by default, and platform's
|
||||||
|
packging can have different default by changing
|
||||||
|
libgnome's desktop_gnome_interface.schemas.
|
||||||
|
|
||||||
2002-09-25 Matthias Clasen <maclas@gmx.de>
|
2002-09-25 Matthias Clasen <maclas@gmx.de>
|
||||||
|
|
||||||
* gdk/x11/gdkvisual-x11.c (gdkx_visual_get): Replace leftover
|
* gdk/x11/gdkvisual-x11.c (gdkx_visual_get): Replace leftover
|
||||||
|
@ -1,3 +1,24 @@
|
|||||||
|
Tue Sep 24 15:35:42 2002 HideToshi Tajima <hidetoshi.tajima@sun.com>
|
||||||
|
|
||||||
|
disable/enable preedit/status in GtkIMContextXIM (#59076)
|
||||||
|
|
||||||
|
* gtk/gtkenums.h (enum): added preedit/status styles for gtk+
|
||||||
|
input method
|
||||||
|
* modules/input/gtkimcontextxim.c
|
||||||
|
* gdk/x11/gdkevents-x11.c: add gtk-im-preedit-style and
|
||||||
|
gtk-im-status-style to GtkSettings.
|
||||||
|
* po/POTFILES.in: added modules/input/gtkimcontextxim.c
|
||||||
|
|
||||||
|
With the other patch for gnome-control-center,
|
||||||
|
the preedit and status styles of GTK+ input method are
|
||||||
|
configurable with associated gconf schemas keys:
|
||||||
|
"/desktop/gnome/interface/gtk-im-preedit-style"
|
||||||
|
"/desktop/gnome/interface/gtk-im-status-style"
|
||||||
|
|
||||||
|
Both are set to "callback" by default, and platform's
|
||||||
|
packging can have different default by changing
|
||||||
|
libgnome's desktop_gnome_interface.schemas.
|
||||||
|
|
||||||
2002-09-25 Matthias Clasen <maclas@gmx.de>
|
2002-09-25 Matthias Clasen <maclas@gmx.de>
|
||||||
|
|
||||||
* gdk/x11/gdkvisual-x11.c (gdkx_visual_get): Replace leftover
|
* gdk/x11/gdkvisual-x11.c (gdkx_visual_get): Replace leftover
|
||||||
|
@ -1,3 +1,24 @@
|
|||||||
|
Tue Sep 24 15:35:42 2002 HideToshi Tajima <hidetoshi.tajima@sun.com>
|
||||||
|
|
||||||
|
disable/enable preedit/status in GtkIMContextXIM (#59076)
|
||||||
|
|
||||||
|
* gtk/gtkenums.h (enum): added preedit/status styles for gtk+
|
||||||
|
input method
|
||||||
|
* modules/input/gtkimcontextxim.c
|
||||||
|
* gdk/x11/gdkevents-x11.c: add gtk-im-preedit-style and
|
||||||
|
gtk-im-status-style to GtkSettings.
|
||||||
|
* po/POTFILES.in: added modules/input/gtkimcontextxim.c
|
||||||
|
|
||||||
|
With the other patch for gnome-control-center,
|
||||||
|
the preedit and status styles of GTK+ input method are
|
||||||
|
configurable with associated gconf schemas keys:
|
||||||
|
"/desktop/gnome/interface/gtk-im-preedit-style"
|
||||||
|
"/desktop/gnome/interface/gtk-im-status-style"
|
||||||
|
|
||||||
|
Both are set to "callback" by default, and platform's
|
||||||
|
packging can have different default by changing
|
||||||
|
libgnome's desktop_gnome_interface.schemas.
|
||||||
|
|
||||||
2002-09-25 Matthias Clasen <maclas@gmx.de>
|
2002-09-25 Matthias Clasen <maclas@gmx.de>
|
||||||
|
|
||||||
* gdk/x11/gdkvisual-x11.c (gdkx_visual_get): Replace leftover
|
* gdk/x11/gdkvisual-x11.c (gdkx_visual_get): Replace leftover
|
||||||
|
@ -1,3 +1,24 @@
|
|||||||
|
Tue Sep 24 15:35:42 2002 HideToshi Tajima <hidetoshi.tajima@sun.com>
|
||||||
|
|
||||||
|
disable/enable preedit/status in GtkIMContextXIM (#59076)
|
||||||
|
|
||||||
|
* gtk/gtkenums.h (enum): added preedit/status styles for gtk+
|
||||||
|
input method
|
||||||
|
* modules/input/gtkimcontextxim.c
|
||||||
|
* gdk/x11/gdkevents-x11.c: add gtk-im-preedit-style and
|
||||||
|
gtk-im-status-style to GtkSettings.
|
||||||
|
* po/POTFILES.in: added modules/input/gtkimcontextxim.c
|
||||||
|
|
||||||
|
With the other patch for gnome-control-center,
|
||||||
|
the preedit and status styles of GTK+ input method are
|
||||||
|
configurable with associated gconf schemas keys:
|
||||||
|
"/desktop/gnome/interface/gtk-im-preedit-style"
|
||||||
|
"/desktop/gnome/interface/gtk-im-status-style"
|
||||||
|
|
||||||
|
Both are set to "callback" by default, and platform's
|
||||||
|
packging can have different default by changing
|
||||||
|
libgnome's desktop_gnome_interface.schemas.
|
||||||
|
|
||||||
2002-09-25 Matthias Clasen <maclas@gmx.de>
|
2002-09-25 Matthias Clasen <maclas@gmx.de>
|
||||||
|
|
||||||
* gdk/x11/gdkvisual-x11.c (gdkx_visual_get): Replace leftover
|
* gdk/x11/gdkvisual-x11.c (gdkx_visual_get): Replace leftover
|
||||||
|
@ -1,3 +1,24 @@
|
|||||||
|
Tue Sep 24 15:35:42 2002 HideToshi Tajima <hidetoshi.tajima@sun.com>
|
||||||
|
|
||||||
|
disable/enable preedit/status in GtkIMContextXIM (#59076)
|
||||||
|
|
||||||
|
* gtk/gtkenums.h (enum): added preedit/status styles for gtk+
|
||||||
|
input method
|
||||||
|
* modules/input/gtkimcontextxim.c
|
||||||
|
* gdk/x11/gdkevents-x11.c: add gtk-im-preedit-style and
|
||||||
|
gtk-im-status-style to GtkSettings.
|
||||||
|
* po/POTFILES.in: added modules/input/gtkimcontextxim.c
|
||||||
|
|
||||||
|
With the other patch for gnome-control-center,
|
||||||
|
the preedit and status styles of GTK+ input method are
|
||||||
|
configurable with associated gconf schemas keys:
|
||||||
|
"/desktop/gnome/interface/gtk-im-preedit-style"
|
||||||
|
"/desktop/gnome/interface/gtk-im-status-style"
|
||||||
|
|
||||||
|
Both are set to "callback" by default, and platform's
|
||||||
|
packging can have different default by changing
|
||||||
|
libgnome's desktop_gnome_interface.schemas.
|
||||||
|
|
||||||
2002-09-25 Matthias Clasen <maclas@gmx.de>
|
2002-09-25 Matthias Clasen <maclas@gmx.de>
|
||||||
|
|
||||||
* gdk/x11/gdkvisual-x11.c (gdkx_visual_get): Replace leftover
|
* gdk/x11/gdkvisual-x11.c (gdkx_visual_get): Replace leftover
|
||||||
|
@ -2204,6 +2204,8 @@ static struct
|
|||||||
{ "Gtk/KeyThemeName", "gtk-key-theme-name" },
|
{ "Gtk/KeyThemeName", "gtk-key-theme-name" },
|
||||||
{ "Gtk/ToolbarStyle", "gtk-toolbar-style" },
|
{ "Gtk/ToolbarStyle", "gtk-toolbar-style" },
|
||||||
{ "Gtk/ToolbarIconSize", "gtk-toolbar-icon-size" },
|
{ "Gtk/ToolbarIconSize", "gtk-toolbar-icon-size" },
|
||||||
|
{ "Gtk/IMPreeditStyle", "gtk-im-preedit-style" },
|
||||||
|
{ "Gtk/IMStatusStyle", "gtk-im-status-style" },
|
||||||
{ "Net/CursorBlink", "gtk-cursor-blink" },
|
{ "Net/CursorBlink", "gtk-cursor-blink" },
|
||||||
{ "Net/CursorBlinkTime", "gtk-cursor-blink-time" },
|
{ "Net/CursorBlinkTime", "gtk-cursor-blink-time" },
|
||||||
{ "Net/ThemeName", "gtk-theme-name" }
|
{ "Net/ThemeName", "gtk-theme-name" }
|
||||||
|
@ -425,6 +425,19 @@ typedef enum
|
|||||||
GTK_SORT_DESCENDING
|
GTK_SORT_DESCENDING
|
||||||
} GtkSortType;
|
} GtkSortType;
|
||||||
|
|
||||||
|
/* Style for gtk input method preeeit/status */
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
GTK_IM_PREEDIT_NOTHING,
|
||||||
|
GTK_IM_PREEDIT_CALLBACK
|
||||||
|
} GtkIMPreeditStyle;
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
GTK_IM_STATUS_NOTHING,
|
||||||
|
GTK_IM_STATUS_CALLBACK
|
||||||
|
} GtkIMStatusStyle;
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif /* __cplusplus */
|
#endif /* __cplusplus */
|
||||||
|
@ -20,6 +20,7 @@
|
|||||||
#include "locale.h"
|
#include "locale.h"
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
|
#include "gtk/gtkintl.h"
|
||||||
#include "gtk/gtklabel.h"
|
#include "gtk/gtklabel.h"
|
||||||
#include "gtk/gtksignal.h"
|
#include "gtk/gtksignal.h"
|
||||||
#include "gtk/gtkwindow.h"
|
#include "gtk/gtkwindow.h"
|
||||||
@ -32,6 +33,7 @@ struct _GtkXIMInfo
|
|||||||
GdkDisplay *display;
|
GdkDisplay *display;
|
||||||
XIM im;
|
XIM im;
|
||||||
char *locale;
|
char *locale;
|
||||||
|
gboolean set_style;
|
||||||
XIMStyle style;
|
XIMStyle style;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -157,19 +159,66 @@ setup_im (GtkXIMInfo *info)
|
|||||||
XIMStyles *xim_styles = NULL;
|
XIMStyles *xim_styles = NULL;
|
||||||
XIMValuesList *ic_values = NULL;
|
XIMValuesList *ic_values = NULL;
|
||||||
int i;
|
int i;
|
||||||
|
GtkSettings *settings;
|
||||||
|
unsigned long xim_preedit_style = 0;
|
||||||
|
unsigned long xim_status_style = 0;
|
||||||
|
unsigned long user_preference;
|
||||||
|
|
||||||
|
if (info->set_style)
|
||||||
|
{
|
||||||
|
settings = gtk_settings_get_default ();
|
||||||
|
|
||||||
|
if (settings)
|
||||||
|
{
|
||||||
|
GtkIMPreeditStyle preedit_style;
|
||||||
|
GtkIMStatusStyle status_style;
|
||||||
|
|
||||||
|
g_object_get (settings,
|
||||||
|
"gtk-im-status-style", &status_style,
|
||||||
|
"gtk-im-preedit-style", &preedit_style,
|
||||||
|
NULL);
|
||||||
|
switch (preedit_style)
|
||||||
|
{
|
||||||
|
case GTK_IM_PREEDIT_CALLBACK:
|
||||||
|
xim_preedit_style = XIMPreeditCallbacks;
|
||||||
|
break;
|
||||||
|
case GTK_IM_PREEDIT_NOTHING:
|
||||||
|
xim_preedit_style = XIMPreeditNothing;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
switch (status_style)
|
||||||
|
{
|
||||||
|
case GTK_IM_STATUS_CALLBACK:
|
||||||
|
xim_status_style = XIMStatusCallbacks;
|
||||||
|
break;
|
||||||
|
case GTK_IM_STATUS_NOTHING:
|
||||||
|
xim_status_style = XIMStatusNothing;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
info->set_style = FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
XGetIMValues (info->im,
|
XGetIMValues (info->im,
|
||||||
XNQueryInputStyle, &xim_styles,
|
XNQueryInputStyle, &xim_styles,
|
||||||
XNQueryICValuesList, &ic_values,
|
XNQueryICValuesList, &ic_values,
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
info->style = 0;
|
info->style = 0;
|
||||||
|
user_preference = (xim_status_style | xim_preedit_style);
|
||||||
if (xim_styles)
|
if (xim_styles)
|
||||||
{
|
{
|
||||||
for (i = 0; i < xim_styles->count_styles; i++)
|
for (i = 0; i < xim_styles->count_styles; i++)
|
||||||
if ((xim_styles->supported_styles[i] & ALLOWED_MASK) == xim_styles->supported_styles[i])
|
if ((xim_styles->supported_styles[i] & ALLOWED_MASK) == xim_styles->supported_styles[i])
|
||||||
info->style = choose_better_style (info->style,
|
{
|
||||||
xim_styles->supported_styles[i]);
|
if (user_preference == xim_styles->supported_styles[i])
|
||||||
|
{
|
||||||
|
info->style = user_preference;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
info->style = choose_better_style (info->style,
|
||||||
|
xim_styles->supported_styles[i]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -228,6 +277,7 @@ get_im (GdkDisplay *display,
|
|||||||
info->display = display;
|
info->display = display;
|
||||||
info->locale = g_strdup (locale);
|
info->locale = g_strdup (locale);
|
||||||
info->im = im;
|
info->im = im;
|
||||||
|
info->set_style = TRUE;
|
||||||
|
|
||||||
setup_im (info);
|
setup_im (info);
|
||||||
}
|
}
|
||||||
@ -253,6 +303,22 @@ gtk_im_context_xim_class_init (GtkIMContextXIMClass *class)
|
|||||||
im_context_class->set_cursor_location = gtk_im_context_xim_set_cursor_location;
|
im_context_class->set_cursor_location = gtk_im_context_xim_set_cursor_location;
|
||||||
im_context_class->set_use_preedit = gtk_im_context_xim_set_use_preedit;
|
im_context_class->set_use_preedit = gtk_im_context_xim_set_use_preedit;
|
||||||
gobject_class->finalize = gtk_im_context_xim_finalize;
|
gobject_class->finalize = gtk_im_context_xim_finalize;
|
||||||
|
|
||||||
|
gtk_settings_install_property (g_param_spec_enum ("gtk-im-preedit-style",
|
||||||
|
_("IM Preedit style"),
|
||||||
|
_("How to draw the input method preedit string"),
|
||||||
|
GTK_TYPE_IM_PREEDIT_STYLE,
|
||||||
|
GTK_IM_PREEDIT_CALLBACK,
|
||||||
|
G_PARAM_READWRITE));
|
||||||
|
|
||||||
|
gtk_settings_install_property (g_param_spec_enum ("gtk-im-status-style",
|
||||||
|
_("IM Status style"),
|
||||||
|
_("How to draw the input method statusbar"),
|
||||||
|
GTK_TYPE_IM_STATUS_STYLE,
|
||||||
|
GTK_IM_STATUS_CALLBACK,
|
||||||
|
G_PARAM_READWRITE));
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -98,3 +98,4 @@ modules/input/imti-er.c
|
|||||||
modules/input/imti-et.c
|
modules/input/imti-et.c
|
||||||
modules/input/imviqr.c
|
modules/input/imviqr.c
|
||||||
modules/input/imxim.c
|
modules/input/imxim.c
|
||||||
|
modules/input/gtkimcontextxim.c
|
||||||
|
Loading…
Reference in New Issue
Block a user