From fcd53ac9e2c705093fd6b2f16395c3d17253240b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20K=C3=B6hler?= Date: Sat, 29 Apr 2006 22:42:33 +0000 Subject: [PATCH] Remove all XIM code, as it has been commented out unconditionally already for a while. Send focus in/out events to register GtkEntry. Address #337020. git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@13882 57a11ea4-9604-0410-9ed3-97b8803252fd --- ChangeLog | 8 + configure.in | 12 -- .../register-gnome/gnucash-item-edit.c | 172 ++---------------- .../register-gnome/gnucash-item-edit.h | 8 - 4 files changed, 21 insertions(+), 179 deletions(-) diff --git a/ChangeLog b/ChangeLog index 617ff4e043..e4c915fe75 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2006-04-30 Andreas Köhler + + * configure.in: + * src/register/register-gnome/gnucash-item-edit.[ch]: Remove all + XIM code, as it has been commented out unconditionally already + for a while. Send focus in/out events to register GtkEntry. + Address #337020. + 2006-04-29 Joshua Sled Bug#157179: make multi-commodity SX handling a bit better. diff --git a/configure.in b/configure.in index 4e1dadf3d4..9d1aba8acd 100644 --- a/configure.in +++ b/configure.in @@ -1081,18 +1081,6 @@ esac EFENCE_LIBS="") AC_SUBST(EFENCE_LIBS) - ### ---------------------------------------------------------------------- - ### XIM - AC_ARG_ENABLE(xim, - [ --enable-xim support XIM [default=yes]], - , enable_xim="yes") - - if test "x$enable_xim" = "xyes"; then - GTK_XIM_FLAGS="-DUSE_XIM" - fi - - AC_SUBST(GTK_XIM_FLAGS) - ### ---------------------------------------------------------------------- ## For now, we just presume you're using the GNOME version. The other diff --git a/src/register/register-gnome/gnucash-item-edit.c b/src/register/register-gnome/gnucash-item-edit.c index a6efae1ea8..91e42716f3 100644 --- a/src/register/register-gnome/gnucash-item-edit.c +++ b/src/register/register-gnome/gnucash-item-edit.c @@ -339,27 +339,6 @@ gnc_item_edit_draw (GnomeCanvasItem *item, GdkDrawable *drawable, gdk_gc_set_clip_rectangle (item_edit->gc, NULL); gnc_item_edit_free_draw_info_members (&info); - -#ifdef USE_XIM - if (gdk_im_ready() && item_edit->ic && - (gdk_ic_get_style (item_edit->ic) & GDK_IM_PREEDIT_POSITION)) - { - GnomeCanvasItem *item; - double winx, winy; - - item = GNOME_CANVAS_ITEM (item_edit); - - gnome_canvas_world_to_window (GNOME_CANVAS (item_edit->sheet), - item->x1, item->y2, - &winx, &winy); - - item_edit->ic_attr->spot_location.x = winx; - item_edit->ic_attr->spot_location.y = winy; - - gdk_ic_set_attr (item_edit->ic, - item_edit->ic_attr, GDK_IC_SPOT_LOCATION); - } -#endif } @@ -441,98 +420,6 @@ gnc_item_edit_realize (GnomeCanvasItem *item) window = GTK_WIDGET (canvas)->window; item_edit->gc = gdk_gc_new (window); - -#ifdef USE_XIM - if (gdk_im_ready () && - (item_edit->ic_attr = gdk_ic_attr_new ()) != NULL) - { - gint width, height; - GdkEventMask mask; - GdkColormap *colormap; - GdkICAttr *attr = item_edit->ic_attr; - GdkICAttributesType attrmask = GDK_IC_ALL_REQ; - GdkIMStyle style; - GdkIMStyle supported_style = - GDK_IM_PREEDIT_NONE | - GDK_IM_PREEDIT_NOTHING | - GDK_IM_PREEDIT_POSITION | - GDK_IM_STATUS_NONE | - GDK_IM_STATUS_NOTHING; - GtkWidget *sheet_widget; - - sheet_widget = GTK_WIDGET (item_edit->sheet); - - if (sheet_widget->style && - gdk_font_from_description (sheet_widget->style->font_desc) - ->type != GDK_FONT_FONTSET) - supported_style &= ~GDK_IM_PREEDIT_POSITION; - - attr->style = style = gdk_im_decide_style (supported_style); - attr->client_window = sheet_widget->window; - - if ((colormap = gtk_widget_get_colormap (sheet_widget)) != - gtk_widget_get_default_colormap ()) - { - attrmask |= GDK_IC_PREEDIT_COLORMAP; - attr->preedit_colormap = colormap; - } - - attrmask |= GDK_IC_PREEDIT_FOREGROUND; - attrmask |= GDK_IC_PREEDIT_BACKGROUND; - - attr->preedit_foreground = - sheet_widget->style->fg[GTK_STATE_NORMAL]; - attr->preedit_background = - sheet_widget->style->base[GTK_STATE_NORMAL]; - - switch (style & GDK_IM_PREEDIT_MASK) - { - case GDK_IM_PREEDIT_POSITION: - if (sheet_widget->style && - gdk_font_from_description ( - sheet_widget->style->font_desc) - ->type != GDK_FONT_FONTSET) - { - g_warning ("over-the-spot style " - "requires fontset"); - break; - } - - gdk_window_get_size (attr->client_window, - &width, &height); - - attrmask |= GDK_IC_PREEDIT_POSITION_REQ; - - attr->spot_location.x = 0; - attr->spot_location.y = height; - attr->preedit_area.x = 0; - attr->preedit_area.y = 0; - attr->preedit_area.width = width; - attr->preedit_area.height = height; - attr->preedit_fontset = - gdk_font_from_description ( - sheet_widget->style->font_desc); - - break; - } - - item_edit->ic = gdk_ic_new (attr, attrmask); - - if (item_edit->ic == NULL) - g_warning ("Can't create input context."); - else - { - mask = gdk_window_get_events (attr->client_window); - mask |= gdk_ic_get_events (item_edit->ic); - - gdk_window_set_events (attr->client_window, mask); - - if (GTK_WIDGET_HAS_FOCUS (sheet_widget)) - gdk_im_begin (item_edit->ic, - attr->client_window); - } - } -#endif } @@ -543,47 +430,37 @@ gnc_item_edit_unrealize (GnomeCanvasItem *item) item_edit = GNC_ITEM_EDIT (item); -#ifdef USE_XIM - if (item_edit->ic) - { - gdk_ic_destroy (item_edit->ic); - item_edit->ic = NULL; - } - - if (item_edit->ic_attr) - { - gdk_ic_attr_destroy (item_edit->ic_attr); - item_edit->ic_attr = NULL; - } -#endif - if (GNOME_CANVAS_ITEM_CLASS (gnc_item_edit_parent_class)->unrealize) (*GNOME_CANVAS_ITEM_CLASS - (gnc_item_edit_parent_class)->unrealize) (item); + (gnc_item_edit_parent_class)->unrealize) (item); } void gnc_item_edit_focus_in (GncItemEdit *item_edit) { + GdkEventFocus ev; + g_return_if_fail (item_edit != NULL); g_return_if_fail (GNC_IS_ITEM_EDIT(item_edit)); -#ifdef USE_XIM - if (item_edit->ic) - gdk_im_begin (item_edit->ic, - GTK_WIDGET (item_edit->sheet)->window); -#endif + ev.type = GDK_FOCUS_CHANGE; + ev.window = GTK_WIDGET (item_edit->sheet)->window; + ev.in = TRUE; + gtk_widget_event (item_edit->editor, (GdkEvent*) &ev); } void gnc_item_edit_focus_out (GncItemEdit *item_edit) { + GdkEventFocus ev; + g_return_if_fail (item_edit != NULL); g_return_if_fail (GNC_IS_ITEM_EDIT(item_edit)); -#ifdef USE_XIM - gdk_im_end (); -#endif + ev.type = GDK_FOCUS_CHANGE; + ev.window = GTK_WIDGET (item_edit->sheet)->window; + ev.in = FALSE; + gtk_widget_event (item_edit->editor, (GdkEvent*) &ev); } void @@ -676,11 +553,6 @@ gnc_item_edit_init (GncItemEdit *item_edit) item_edit->x_offset = 0; gnc_virtual_location_init(&item_edit->virt_loc); - -#ifdef USE_XIM - item_edit->ic = NULL; - item_edit->ic_attr = NULL; -#endif } @@ -895,24 +767,6 @@ gnc_item_edit_configure (GncItemEdit *item_edit) NULL, NULL, NULL, NULL); gnc_item_edit_update (GNOME_CANVAS_ITEM(item_edit), NULL, NULL, 0); - -#ifdef USE_XIM - if (item_edit->ic && - (gdk_ic_get_style (item_edit->ic) & GDK_IM_PREEDIT_POSITION)) - { - GnomeCanvasItem *item; - - item = GNOME_CANVAS_ITEM (item_edit); - - item_edit->ic_attr->preedit_area.x = item->x1; - item_edit->ic_attr->preedit_area.y = item->y1; - item_edit->ic_attr->preedit_area.width = item->x2 - item->x1; - item_edit->ic_attr->preedit_area.height = item->y2 - item->y1; - - gdk_ic_set_attr (item_edit->ic, item_edit->ic_attr, - GDK_IC_PREEDIT_AREA); - } -#endif } diff --git a/src/register/register-gnome/gnucash-item-edit.h b/src/register/register-gnome/gnucash-item-edit.h index 46fbcf6158..e76c4f5d41 100644 --- a/src/register/register-gnome/gnucash-item-edit.h +++ b/src/register/register-gnome/gnucash-item-edit.h @@ -26,9 +26,6 @@ #include "gnucash-item-list.h" #include "gnucash-sheet.h" -/* GNOME 2 port (XIM need to be replaced by a GNOME 2 port) */ -#undef USE_XIM - #define GNC_TYPE_ITEM_EDIT (gnc_item_edit_get_type ()) #define GNC_ITEM_EDIT(o) (G_TYPE_CHECK_INSTANCE_CAST((o), GNC_TYPE_ITEM_EDIT, GncItemEdit)) #define GNC_ITEM_EDIT_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GNC_TYPE_ITEM_EDIT, GncItemEditClass)) @@ -96,11 +93,6 @@ typedef struct { GdkGC *gc; -#ifdef USE_XIM - GdkIC *ic; - GdkICAttr *ic_attr; -#endif - gboolean reset_pos; gint x_offset; gint anchor_pos;