matchbox-keyboard-inputmethod: Add patch for a matchbox-panel-2 keyboard toogle
authorStefan Schmidt <stefan@datenfreihafen.org>
Wed, 5 Sep 2007 12:21:27 +0000 (12:21 +0000)
committerStefan Schmidt <stefan@datenfreihafen.org>
Wed, 5 Sep 2007 12:21:27 +0000 (12:21 +0000)
applet, until it goes upstream.

packages/matchbox-keyboard/files/matchbox-keyboard-applet.patch [new file with mode: 0644]
packages/matchbox-keyboard/matchbox-keyboard-inputmethod_svn.bb

diff --git a/packages/matchbox-keyboard/files/matchbox-keyboard-applet.patch b/packages/matchbox-keyboard/files/matchbox-keyboard-applet.patch
new file mode 100644 (file)
index 0000000..29dc9c0
--- /dev/null
@@ -0,0 +1,92 @@
+Index: applet/applet.c
+===================================================================
+--- applet/applet.c    (revision 1633)
++++ applet/applet.c    (working copy)
+@@ -1,30 +1,76 @@
++/*
++ * keyboard - Tray applet to toggle matchbox-keyboard's gtk-im
++ *
++ * Copyright 2007, Openedhand Ltd.
++ * Author Stefan Schmidt <stefan@openmoko.org>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; version 2 of the license.
++ *
++ * This program 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 General Public License for more details.
++ *
++ */
++
+ #include <gtk/gtk.h>
++#include <gtk/gtkeventbox.h>
+ #include <matchbox-panel/mb-panel.h>
+ #include <matchbox-panel/mb-panel-scaling-image.h>
+ #include <gtk-im/im-protocol.h>
++typedef struct {
++  GtkWidget *event_box;
++  gboolean show;
++} KeyboardApplet;
++
+ static void
+-on_toggled (GtkToggleButton *button)
++on_toggled (GtkWidget *event_box, GdkEventButton *event, KeyboardApplet *applet)
+ {
+-  protocol_send_event (gtk_toggle_button_get_active (button) ?
+-                       INVOKE_KBD_SHOW : INVOKE_KBD_HIDE);
++
++  protocol_send_event (applet->show ? INVOKE_KBD_SHOW : INVOKE_KBD_HIDE);
++
++  if (applet->show)
++    applet->show = FALSE;
++  else
++    applet->show = TRUE;
+ }
++static void
++keyboard_applet_free (KeyboardApplet *applet)
++{
++        g_slice_free (KeyboardApplet, applet);
++}
++
+ G_MODULE_EXPORT GtkWidget *
+ mb_panel_applet_create (const char *id, GtkOrientation orientation)
+ {
+-  GtkWidget *button, *image;
++  KeyboardApplet *applet;
++  MBPanelScalingImage *image;
++  //GtkImage *image;
+-  button = gtk_toggle_button_new ();
+-  gtk_widget_set_name (button, "MatchboxPanelKeyboard");
+-  gtk_button_set_relief (GTK_BUTTON (button), GTK_RELIEF_NONE);
++  /* Create applet data structure */
++  applet = g_slice_new (KeyboardApplet);
++  applet->event_box = gtk_event_box_new ();
++  gtk_event_box_set_visible_window (applet->event_box, FALSE);
++
++  gtk_widget_set_name (applet->event_box, "MatchboxPanelKeyboard");
++
+   image = mb_panel_scaling_image_new (orientation, "matchbox-keyboard");
+-  gtk_container_add (GTK_CONTAINER (button), image);
+-  g_signal_connect (button, "toggled", G_CALLBACK (on_toggled), NULL);
++  gtk_container_add (GTK_CONTAINER (applet->event_box), image);
+-  gtk_widget_show_all (button);
++  g_object_weak_ref (G_OBJECT (applet->event_box),
++                                      (GWeakNotify) keyboard_applet_free, applet);
+-  return button;
++  /* Toggle the on release event */
++  g_signal_connect (applet->event_box, "button-release-event",
++                                      G_CALLBACK (on_toggled), applet);
++
++  gtk_widget_show_all (applet->event_box);
++
++  return applet->event_box;
+ }
index 0ecb5e9..a0e3582 100644 (file)
@@ -6,10 +6,11 @@ RPROVIDES_${PN} = matchbox-keyboard
 #DEFAULT_PREFERENCE = "-1"
 SECTION = "x11"
 PV = "0.0+svn${SRCDATE}"
-PR = "r2"
+PR = "r4"
 
 SRC_URI = "svn://svn.o-hand.com/repos/matchbox/trunk;module=matchbox-keyboard;proto=http \
-          file://80matchboxkeyboard"
+       file://matchbox-keyboard-applet.patch;patch=1;pnum=0 \
+       file://80matchboxkeyboard"
 
 SRC_URI_append_fic-gta01 = " file://fic-gta01-font-size.patch;patch=1"