summaryrefslogtreecommitdiff
path: root/extra/scim
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2011-08-08 23:14:38 +0000
committerroot <root@rshg054.dnsready.net>2011-08-08 23:14:38 +0000
commit2b6f5a28e2e55b46c1169228e1e56f3b18dd08b5 (patch)
treeebd7dccec211af75c9dfd55560b3e5f61420b784 /extra/scim
parent665308e50fd95e984da057ab8ddb6505b596b841 (diff)
Mon Aug 8 23:14:38 UTC 2011
Diffstat (limited to 'extra/scim')
-rw-r--r--extra/scim/PKGBUILD21
-rw-r--r--extra/scim/wtf.patch93
2 files changed, 105 insertions, 9 deletions
diff --git a/extra/scim/PKGBUILD b/extra/scim/PKGBUILD
index e9755aada..f8d96e585 100644
--- a/extra/scim/PKGBUILD
+++ b/extra/scim/PKGBUILD
@@ -1,26 +1,29 @@
-# $Id: PKGBUILD 125359 2011-05-26 09:22:50Z bisson $
+# $Id: PKGBUILD 134853 2011-08-08 03:28:47Z bisson $
# Maintainer: Gaetan Bisson <bisson@archlinux.org>
# Contributor: damir <damir@archlinux.org>
# Contributor: Gan Lu <rhythm.gan@gmail.com>
pkgname=scim
-pkgver=1.4.10
+pkgver=1.4.11
pkgrel=1
pkgdesc='Input method user interface and development platform'
url='http://www.scim-im.org/projects/scim'
license=('GPL')
arch=('i686' 'x86_64')
-depends=('gtk2' 'gcc-libs')
+options=('!libtool')
makedepends=('intltool')
+depends=('gtk2' 'libtool')
backup=('etc/scim/config' 'etc/scim/global')
-options=('!libtool')
-source=("http://downloads.sourceforge.net/project/$pkgname/$pkgname/$pkgver/${pkgname}_$pkgver.tar.gz")
-sha1sums=('bf33a6ceb199453fed909a61f54e971653fe5abf')
+source=("http://downloads.sourceforge.net/project/${pkgname}/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.gz"
+ 'wtf.patch')
+sha1sums=('dd93094f62e5707db88d4f0e7ebd3392ae75b942'
+ '14d2be6c8f9f4af6494c3e806d3cadef5803597a')
install=install
build() {
- cd "$srcdir/$pkgname-$pkgver"
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p1 -i ../wtf.patch # revert broken commit 303
./bootstrap
./configure \
@@ -34,7 +37,7 @@ build() {
}
package() {
- cd "$srcdir/$pkgname-$pkgver"
+ cd "${srcdir}/${pkgname}-${pkgver}"
- make DESTDIR="$pkgdir" install
+ make DESTDIR="${pkgdir}" install
}
diff --git a/extra/scim/wtf.patch b/extra/scim/wtf.patch
new file mode 100644
index 000000000..c0e5ab078
--- /dev/null
+++ b/extra/scim/wtf.patch
@@ -0,0 +1,93 @@
+diff -aur old/extras/panel/scim_panel_gtk.cpp new/extras/panel/scim_panel_gtk.cpp
+--- old/extras/panel/scim_panel_gtk.cpp 2011-08-04 13:21:29.000000000 -0700
++++ new/extras/panel/scim_panel_gtk.cpp 2011-08-07 16:11:12.977663776 -0700
+@@ -479,12 +479,12 @@
+
+ static bool _should_exit = false;
+
++static bool _panel_is_on = false;
+
+-static struct timeval _last_menu_deactivate_time = {0, 0};
++static GThread *_panel_agent_thread = 0;
++
++static PanelAgent *_panel_agent = 0;
+
+-// client repository
+-static PropertyRepository _frontend_property_repository;
+-static HelperPropertyRepository _helper_property_repository;
+ static std::vector<String> _factory_menu_uuids;
+
+ static std::list<String> _recent_factory_uuids;
+@@ -1187,16 +1187,16 @@
+
+ GtkRequisition ws;
+ gint pos_x, pos_y;
++
++ gtk_widget_size_request (_toolbar_window, &ws);
++
++ pos_x = _config->read (String (SCIM_CONFIG_PANEL_GTK_TOOLBAR_POS_X),
+ workarea_x + workarea_width - ws.width);
+ pos_y = _config->read (String (SCIM_CONFIG_PANEL_GTK_TOOLBAR_POS_Y),
+ workarea_y + workarea_height - ws.height);
+ if (pos_x == -1 && pos_y == -1) {
+ pos_x = workarea_x + workarea_width - ws.width;
+ pos_y = workarea_y + workarea_height - ws.height;
+- workarea_y + workarea_height - ws.height);
+- if (pos_x == -1 && pos_y == -1) {
+- pos_x = workarea_x + workarea_width - ws.width;
+- pos_y = workarea_y + workarea_height - ws.height;
+ }
+
+ if (_toolbar_auto_snap) {
+@@ -1215,6 +1215,10 @@
+ else if (pos_y < 0)
+ pos_y = 0;
+
++ if (_toolbar_window_x != pos_x || _toolbar_window_y != pos_y || force) {
++ gtk_window_move (GTK_WINDOW (_toolbar_window), pos_x, pos_y);
++ _toolbar_window_x = pos_x;
++ _toolbar_window_y = pos_y;
+ }
+ }
+
+@@ -1227,9 +1231,9 @@
+ #endif
+ return gdk_screen_width ();
+ }
+- return gdk_screen_get_width (_current_screen);
+-#endif
+- return gdk_screen_width ();
++
++static int
++ui_screen_height (void)
+ {
+ #if GDK_MULTIHEAD_SAFE
+ if (_current_screen)
+@@ -1237,10 +1241,6 @@
+ #endif
+ return gdk_screen_height ();
+ }
+- return gdk_screen_get_height (_current_screen);
+-#endif
+- return gdk_screen_height ();
+-}
+
+ static void
+ ui_get_workarea (int &x, int &y, int &width, int &height)
+@@ -1929,11 +1929,11 @@
+ static gulong motion_handler;
+ GdkCursor *cursor;
+
+- if (!_config.null () &&
+- (_toolbar_window_x != pos_x || _toolbar_window_y != pos_y)) {
+- _config->write (
+- SCIM_CONFIG_PANEL_GTK_TOOLBAR_POS_X, pos_x);
+- _config->write (
++ if (click_type == 0 && event->button <= 1) {
++ if (_toolbar_window_draging)
++ return FALSE;
++
++ // Connection pointer motion handler to this window.
+ motion_handler = g_signal_connect (G_OBJECT (window), "motion-notify-event",
+ G_CALLBACK (ui_toolbar_window_motion_cb),
+ NULL);