From ca708dd453205fc406c8289ea47aedeefaf12264 Mon Sep 17 00:00:00 2001 From: Oliver Smith Date: Sun, 5 Apr 2020 14:51:18 +0200 Subject: [PATCH] maemo: remove (!1126) The current postmarketOS port does not do Hildon/Maemo Leste justice. Various features are missing or broken. We can't even upgrade to the newest version, because of packaging issues that can't easily be resolved. And nobody is maintaining it currently. So for the people who want to use Hildon, please use Maemo Leste (https://maemo-leste.github.io/). If somebody is willing to invest a lot of time for a new postmarketOS port of Hildon/Maemo Leste, let us know! --- maemo/alarmd/APKBUILD | 27 - maemo/alarmd/alarmd-fix-musl.patch | 37 - maemo/alarmd/build-fix.patch | 55 - maemo/cityinfo/APKBUILD | 24 - maemo/clockd/APKBUILD | 33 - maemo/clockd/build-fix.patch | 13 - maemo/clockd/fix-unknown-type-name.patch | 33 - maemo/dsme/APKBUILD | 27 - maemo/dsme/build-fix.patch | 84 - maemo/gconf/APKBUILD | 36 - maemo/gtk+2.0-maemo/APKBUILD | 141 - maemo/gtk+2.0-maemo/automake.patch | 19 - .../gtk+2.0-maemo.post-deinstall | 7 - .../gtk+2.0-maemo/gtk+2.0-maemo.post-install | 5 - .../gtk+2.0-maemo/gtk+2.0-maemo.post-upgrade | 1 - .../gtk-update-icon-cache.trigger | 9 - maemo/gtk+2.0-maemo/gtk2-fixdso.patch | 15 - .../hildonize-gtk-treeview.patch | 3595 ----------------- maemo/gtk+2.0-maemo/xid-collision-debug.patch | 15 - maemo/hildon-desktop/APKBUILD | 36 - maemo/hildon-desktop/build-fix.patch | 16 - maemo/hildon-home/APKBUILD | 27 - maemo/hildon-theme-alpha/APKBUILD | 26 - maemo/hildon-thumbnail/APKBUILD | 30 - maemo/icd2-osso-ic-headers/APKBUILD | 32 - maemo/iphbd/APKBUILD | 27 - maemo/libcal/APKBUILD | 21 - maemo/libconic/APKBUILD | 31 - maemo/libdevlock/APKBUILD | 25 - maemo/libdsme/APKBUILD | 24 - maemo/libdsme/include.patch | 12 - maemo/libhildon/APKBUILD | 29 - .../fix-inline-function-problems.patch | 151 - maemo/libhildon/hildon-non-glibc.patch | 66 - maemo/libhildondesktop/APKBUILD | 33 - ...-functions-from-breaking-compilation.patch | 16 - maemo/libhildonfm/APKBUILD | 28 - maemo/libhildonmime/APKBUILD | 21 - maemo/libmatchbox2/APKBUILD | 28 - maemo/libosso/APKBUILD | 24 - maemo/libosso/libosso-mem-musl.patch | 52 - maemo/maemo-l10n/APKBUILD | 295 -- maemo/maemo-launcher/APKBUILD | 27 - maemo/mce-headers/APKBUILD | 26 - maemo/mce/APKBUILD | 28 - maemo/mce/busybox-install-incompability.patch | 16 - maemo/osso-bookmark-engine/APKBUILD | 25 - maemo/osso-systemui-dbus-headers/APKBUILD | 21 - maemo/osso-systemui-devlock-headers/APKBUILD | 18 - .../osso-systemui-modechange-headers/APKBUILD | 18 - maemo/osso-systemui-powerkeymenu/APKBUILD | 25 - .../APKBUILD | 21 - maemo/osso-systemui-tklock/APKBUILD | 24 - maemo/osso-systemui/APKBUILD | 33 - .../osso-systemui-musl-fix.patch | 27 - maemo/osso-xterm/APKBUILD | 29 - maemo/profiled/APKBUILD | 27 - maemo/profiled/profiled-fix-musl.patch | 21 - maemo/sapwood/APKBUILD | 25 - maemo/statusbar-alarm-dbus/APKBUILD | 30 - .../60-lightdm-autologin.conf | 5 - main/postmarketos-ui-hildon/APKBUILD | 41 - main/postmarketos-ui-hildon/hildon.desktop | 11 - .../postmarketos-ui-hildon.post-deinstall | 3 - .../postmarketos-ui-hildon.post-install | 5 - .../postmarketos-ui-hildon.post-upgrade | 5 - .../postmarketos-ui-hildon.pre-deinstall | 3 - main/postmarketos-ui-hildon/xinitrc_hildon.sh | 17 - 68 files changed, 5757 deletions(-) delete mode 100644 maemo/alarmd/APKBUILD delete mode 100644 maemo/alarmd/alarmd-fix-musl.patch delete mode 100644 maemo/alarmd/build-fix.patch delete mode 100644 maemo/cityinfo/APKBUILD delete mode 100644 maemo/clockd/APKBUILD delete mode 100644 maemo/clockd/build-fix.patch delete mode 100644 maemo/clockd/fix-unknown-type-name.patch delete mode 100644 maemo/dsme/APKBUILD delete mode 100644 maemo/dsme/build-fix.patch delete mode 100644 maemo/gconf/APKBUILD delete mode 100644 maemo/gtk+2.0-maemo/APKBUILD delete mode 100644 maemo/gtk+2.0-maemo/automake.patch delete mode 100644 maemo/gtk+2.0-maemo/gtk+2.0-maemo.post-deinstall delete mode 100644 maemo/gtk+2.0-maemo/gtk+2.0-maemo.post-install delete mode 120000 maemo/gtk+2.0-maemo/gtk+2.0-maemo.post-upgrade delete mode 100644 maemo/gtk+2.0-maemo/gtk-update-icon-cache.trigger delete mode 100644 maemo/gtk+2.0-maemo/gtk2-fixdso.patch delete mode 100644 maemo/gtk+2.0-maemo/hildonize-gtk-treeview.patch delete mode 100644 maemo/gtk+2.0-maemo/xid-collision-debug.patch delete mode 100644 maemo/hildon-desktop/APKBUILD delete mode 100644 maemo/hildon-desktop/build-fix.patch delete mode 100644 maemo/hildon-home/APKBUILD delete mode 100644 maemo/hildon-theme-alpha/APKBUILD delete mode 100644 maemo/hildon-thumbnail/APKBUILD delete mode 100644 maemo/icd2-osso-ic-headers/APKBUILD delete mode 100644 maemo/iphbd/APKBUILD delete mode 100644 maemo/libcal/APKBUILD delete mode 100644 maemo/libconic/APKBUILD delete mode 100644 maemo/libdevlock/APKBUILD delete mode 100644 maemo/libdsme/APKBUILD delete mode 100644 maemo/libdsme/include.patch delete mode 100644 maemo/libhildon/APKBUILD delete mode 100644 maemo/libhildon/fix-inline-function-problems.patch delete mode 100644 maemo/libhildon/hildon-non-glibc.patch delete mode 100644 maemo/libhildondesktop/APKBUILD delete mode 100644 maemo/libhildondesktop/stop-deprecated-functions-from-breaking-compilation.patch delete mode 100644 maemo/libhildonfm/APKBUILD delete mode 100644 maemo/libhildonmime/APKBUILD delete mode 100644 maemo/libmatchbox2/APKBUILD delete mode 100644 maemo/libosso/APKBUILD delete mode 100644 maemo/libosso/libosso-mem-musl.patch delete mode 100644 maemo/maemo-l10n/APKBUILD delete mode 100644 maemo/maemo-launcher/APKBUILD delete mode 100644 maemo/mce-headers/APKBUILD delete mode 100644 maemo/mce/APKBUILD delete mode 100644 maemo/mce/busybox-install-incompability.patch delete mode 100644 maemo/osso-bookmark-engine/APKBUILD delete mode 100644 maemo/osso-systemui-dbus-headers/APKBUILD delete mode 100644 maemo/osso-systemui-devlock-headers/APKBUILD delete mode 100644 maemo/osso-systemui-modechange-headers/APKBUILD delete mode 100644 maemo/osso-systemui-powerkeymenu/APKBUILD delete mode 100644 maemo/osso-systemui-splashscreen-headers/APKBUILD delete mode 100644 maemo/osso-systemui-tklock/APKBUILD delete mode 100644 maemo/osso-systemui/APKBUILD delete mode 100644 maemo/osso-systemui/osso-systemui-musl-fix.patch delete mode 100644 maemo/osso-xterm/APKBUILD delete mode 100644 maemo/profiled/APKBUILD delete mode 100644 maemo/profiled/profiled-fix-musl.patch delete mode 100644 maemo/sapwood/APKBUILD delete mode 100644 maemo/statusbar-alarm-dbus/APKBUILD delete mode 100644 main/postmarketos-ui-hildon/60-lightdm-autologin.conf delete mode 100644 main/postmarketos-ui-hildon/APKBUILD delete mode 100644 main/postmarketos-ui-hildon/hildon.desktop delete mode 100644 main/postmarketos-ui-hildon/postmarketos-ui-hildon.post-deinstall delete mode 100644 main/postmarketos-ui-hildon/postmarketos-ui-hildon.post-install delete mode 100644 main/postmarketos-ui-hildon/postmarketos-ui-hildon.post-upgrade delete mode 100644 main/postmarketos-ui-hildon/postmarketos-ui-hildon.pre-deinstall delete mode 100644 main/postmarketos-ui-hildon/xinitrc_hildon.sh diff --git a/maemo/alarmd/APKBUILD b/maemo/alarmd/APKBUILD deleted file mode 100644 index 2b7936c5c..000000000 --- a/maemo/alarmd/APKBUILD +++ /dev/null @@ -1,27 +0,0 @@ -# Contributor: Bart Ribbers -# Maintainer: Nikita Ukhrenkov -pkgname=alarmd -pkgver=1.1.18 -pkgrel=0 -pkgdesc="An alarm framework used for handling of alarms and other timed events" -url="https://github.com/maemo-leste/alarmd" -arch="all !armhf !armv7" -license="LGPL-2.1-only" -makedepends="glib-dev dbus-glib-dev dbus-dev libdsme-dev libconic-dev - osso-systemui-dbus-headers mce-headers statusbar-alarm-dbus-dev clockd-dev - doxygen" -source="$pkgname-$pkgver.tar.gz::https://github.com/maemo-leste/alarmd/archive/$pkgver.tar.gz - alarmd-fix-musl.patch" -subpackages="$pkgname-dev $pkgname-doc" -options="!check" - -build() { - CFLAGS="$CFLAGS -Wno-error=array-bounds" make -} - -package() { - ROOT="$pkgdir" make install -} - -sha512sums="e5c0e2608506811094bf8cdc267b2c72642bf3321df182fe813f3adb8e8491ebb0abc60d01265c4ae836bf22b9779ea69489b607971bf5b81fc0c5f89d873209 alarmd-1.1.18.tar.gz -3add3f0e0c20f7a5db98c9138754378d5a52ac052b3cf176281b8b02434bee1b030f49157259c1a477daeebb5a70bfb05127c237de682ac4421d5005989c915f alarmd-fix-musl.patch" diff --git a/maemo/alarmd/alarmd-fix-musl.patch b/maemo/alarmd/alarmd-fix-musl.patch deleted file mode 100644 index b8820dc1c..000000000 --- a/maemo/alarmd/alarmd-fix-musl.patch +++ /dev/null @@ -1,37 +0,0 @@ -diff --git a/src/sighnd.c b/src/sighnd.c -index 505e79a..cd66ab7 100644 ---- a/src/sighnd.c -+++ b/src/sighnd.c -@@ -35,6 +35,16 @@ - #include - #include - -+/* taken from glibc unistd.h and fixes musl */ -+#ifndef TEMP_FAILURE_RETRY -+#define TEMP_FAILURE_RETRY(expression) \ -+ (__extension__ \ -+ ({ long int __result; \ -+ do __result = (long int) (expression); \ -+ while (__result == -1L && errno == EINTR); \ -+ __result; })) -+#endif -+ - /* ========================================================================= * - * SIGNAL HANDING FUNCTIONALITY - * ========================================================================= */ -diff --git a/src/ticker.c b/src/ticker.c -index 7ff6ca9..2f97f47 100644 ---- a/src/ticker.c -+++ b/src/ticker.c -@@ -662,10 +662,7 @@ time_t ticker_get_monotonic(void) - - static inline int is_leap_year(int y) - { -- // use macro from time.h -- return __isleap(y); -- -- //return (y % 4 == 0) && ((y % 100 != 0) || (y % 400 == 0)); -+ return (y % 4 == 0) && ((y % 100 != 0) || (y % 400 == 0)); - } - - /* ------------------------------------------------------------------------- * diff --git a/maemo/alarmd/build-fix.patch b/maemo/alarmd/build-fix.patch deleted file mode 100644 index 3a7bd252a..000000000 --- a/maemo/alarmd/build-fix.patch +++ /dev/null @@ -1,55 +0,0 @@ -diff --git a/configure.ac b/configure.ac -index cd34a82..8071bff 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -3,4 +3,27 @@ AM_INIT_AUTOMAKE(ke-recv-extra, 0.2) - AM_CONFIG_HEADER(config.h) - AC_PROG_CC - -+PKG_CHECK_MODULES(OSSO, libosso) -+AC_SUBST(OSSO_CFLAGS) -+AC_SUBST(OSSO_LIBS) -+ -+PKG_CHECK_MODULES(GLIB, glib-2.0) -+AC_SUBST(GLIB_CFLAGS) -+AC_SUBST(GLIB_LIBS) -+ -+PKG_CHECK_MODULES(GCONF, gconf-2.0) -+AC_SUBST(GCONF_FLAGS) -+AC_SUBST(GCONF_LIBS) -+ -+PKG_CHECK_MODULES(DBUS, dbus-1) -+AC_SUBST(DBUS_CFLAGS) -+AC_SUBST(DBUS_LIBS) -+ -+PKG_CHECK_MODULES(DBUS_GLIB, dbus-glib-1) -+AC_SUBST(DBUS_GLIB_CFLAGS) -+AC_SUBST(DBUS_GLIB_LIBS) -+ -+LOCALEDIR=`pkg-config --variable=localedir osso-af-settings` -+AC_SUBST(LOCALEDIR) -+ - AC_OUTPUT([Makefile src/Makefile]) -diff --git a/src/Makefile.am b/src/Makefile.am -index 8e4dee8..7a7e23b 100644 ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -1,15 +1,9 @@ - sbin_PROGRAMS = hulda - --INCLUDES = \ -- `pkg-config --cflags libosso` \ -- `pkg-config --cflags glib-2.0` \ -- `pkg-config --cflags gconf-2.0` \ -- `pkg-config --cflags dbus-1` \ -- `pkg-config --cflags dbus-glib-1` \ -- -DLOCALEDIR=\"`pkg-config --variable=localedir osso-af-settings`\" -+INCLUDES = -DLOCALEDIR=\"$(LOCALEDIR)\" - --hulda_LDFLAGS = \ -- `pkg-config --libs gconf-2.0 dbus-glib-1` -+hulda_CFLAGS= $(GLIB_CFLAGS) $(GCONF_CFLAGS) $(DBUS_GLIB_CFLAGS) $(DBUS_CFLAGS) $(OSSO_CFLAGS) -+hulda_LDADD = $(GLIB_LIBS) $(GCONF_LIBS) $(DBUS_GLIB_LIBS) $(DBUS_LIBS) $(OSSO_LIBS) - - hulda_SOURCES = \ - hulda.h \ diff --git a/maemo/cityinfo/APKBUILD b/maemo/cityinfo/APKBUILD deleted file mode 100644 index 6297966e7..000000000 --- a/maemo/cityinfo/APKBUILD +++ /dev/null @@ -1,24 +0,0 @@ -# Contributor: Bart Ribbers -# Maintainer: Nikita Ukhrenkov -pkgname=cityinfo -pkgver=0.5.18 -pkgrel=0 -pkgdesc="Cityinfo library allows to get some informations about set of cities from all over the world" -url="https://github.com/maemo-leste/cityinfo" -arch="all !armhf !armv7" -license="LGPL-2.1-or-later" -depends_dev="gconf-dev glib-dev" -makedepends="$depends_dev" -source="$pkgname-$pkgver.tar.gz::https://github.com/maemo-leste/cityinfo/archive/$pkgver.tar.gz" -subpackages="$pkgname-dev" -options="!check" - -build() { - make -} - -package() { - DESTDIR="$pkgdir" make install -} - -sha512sums="ae54715fd1fe005e50c427d7eab6f74ce5759f858edd8e34f9814fa7ff422f9a8d3b9ec9d8cd10c6076040c9a3fdf3c26169242742b46e18514eb9d3a157f772 cityinfo-0.5.18.tar.gz" diff --git a/maemo/clockd/APKBUILD b/maemo/clockd/APKBUILD deleted file mode 100644 index 7fdffab03..000000000 --- a/maemo/clockd/APKBUILD +++ /dev/null @@ -1,33 +0,0 @@ -# Contributor: Bart Ribbers -# Maintainer: Nikita Ukhrenkov -pkgname=clockd -pkgver=0.0.43 -pkgrel=0 -pkgdesc="Provides centralized place for handling time" -url="https://github.com/maemo-leste/clockd" -arch="all !armhf !armv7" -license="GPL-2.0-or-later" -makedepends="autoconf automake libtool glib-dev dbus-glib-dev gconf-dev cityinfo-dev" -source="$pkgname-$pkgver.tar.gz::https://github.com/maemo-leste/clockd/archive/$pkgver.tar.gz - fix-unknown-type-name.patch - build-fix.patch" # Remove when cityinfo linkage is fixed -subpackages="$pkgname-dev" -options="!check" - -prepare() { - default_prepare - ./autogen.sh -} - -build() { - ./configure --prefix=/usr - make -} - -package() { - DESTDIR="$pkgdir" make install -} - -sha512sums="54d0459d5207c6e560b78b0857b22b6fc0f19ecbab039f27ed2983b34f1c8ee100902af6184b56709c288c927acf10d84b7d677caa8d62e1d7e5a78f74fefccb clockd-0.0.43.tar.gz -82baef0d239d2fa2105c2d2eb5cd5662766b7b7131f3df74ffdb931916064b0a0939845db93eae7f43999bb2d1c10a286ca63d252bec35c0be74a88e7a43c47b fix-unknown-type-name.patch -8dacc083724aac21b78150bf1191ccbde1b792db04303463cfa03e681baf225d999b69cfc5e2f1860eb43c8e442953080d18cbe15e9b0389d0469e9d05433f78 build-fix.patch" diff --git a/maemo/clockd/build-fix.patch b/maemo/clockd/build-fix.patch deleted file mode 100644 index f00f630db..000000000 --- a/maemo/clockd/build-fix.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/clockd/Makefile.am b/clockd/Makefile.am -index 7defc10..3dc0dc5 100644 ---- a/clockd/Makefile.am -+++ b/clockd/Makefile.am -@@ -24,7 +24,7 @@ libtime_a_CFLAGS = $(DBUS_CFLAGS) -DMESTR="\"$(PACKAGE_NAME):\"" - - clockd_SOURCES = sighnd.c clockd.c mainloop.c internal_time_utils.c mcc_tz_utils.c logging.c server.c - clockd_CFLAGS = $(DBUS_CFLAGS) $(GLIB_CFLAGS) $(CITYINFO_CFLAGS) $(DBUSGLIB_CFLAGS) -DMESTR="\"$(PACKAGE_NAME):\"" --clockd_LDADD = $(DBUS_LIBS) $(GLIB_LIBS) $(CITYINFO_LIBS) $(DBUSGLIB_LIBS) libtime.a -+clockd_LDADD = $(DBUS_LIBS) $(GLIB_LIBS) $(CITYINFO_LIBS) -lgconf-2 $(DBUSGLIB_LIBS) libtime.a - - rclockd_SOURCES = rclockd.c - rclockd_CFLAGS = -DMESTR="\"$(PACKAGE_NAME):\"" diff --git a/maemo/clockd/fix-unknown-type-name.patch b/maemo/clockd/fix-unknown-type-name.patch deleted file mode 100644 index 10a57da55..000000000 --- a/maemo/clockd/fix-unknown-type-name.patch +++ /dev/null @@ -1,33 +0,0 @@ -diff --git a/clockd/rclockd.c b/clockd/rclockd.c -index ef81318..7564c73 100644 ---- a/clockd/rclockd.c -+++ b/clockd/rclockd.c -@@ -25,8 +25,8 @@ bool clockd_debug_mode = false; - - #define SET_UID(uid) set_uid(uid, __FUNCTION__) - --static __uid_t --set_uid(__uid_t uid, const char *f) -+static uid_t -+set_uid(uid_t uid, const char *f) - { - if (uid && setuid(0)) - { -@@ -44,7 +44,7 @@ static int - set_time(const char *s) - { - unsigned long sec = strtoul(s, 0, 10); -- __uid_t uid = SET_UID(getuid()); -+ uid_t uid = SET_UID(getuid()); - struct timeval tv; - int rv = -1; - -@@ -92,7 +92,7 @@ set_tz(const char *s) - { - char path[256]; - struct stat stat_buf; -- __uid_t uid = SET_UID(getuid()); -+ uid_t uid = SET_UID(getuid()); - int rv = -1; - - if (s[1] == '/') diff --git a/maemo/dsme/APKBUILD b/maemo/dsme/APKBUILD deleted file mode 100644 index 0865586c5..000000000 --- a/maemo/dsme/APKBUILD +++ /dev/null @@ -1,27 +0,0 @@ -# Contributor: Bart Ribbers -# Contributor: Nikita Ukhrenkov -# Maintainer: Nikita Ukhrenkov -pkgname=dsme -pkgver=0.61.5 -pkgrel=0 -pkgdesc="DSME is responsible of device state management, process lifeguard support, watch dogs and thermal management" -url="https://github.com/maemo-leste/dsme" -arch="all !armhf !armv7" -license="LGPL-2.1-only" -depends_dev="glib-dev dbus-glib-dev linux-headers libdsme-dev libcal-dev" -makedepends="$depends_dev bash" -subpackages="$pkgname-dev" -source="$pkgname-$pkgver.tar.gz::https://github.com/maemo-leste/dsme/archive/$pkgver.tar.gz - build-fix.patch" -options="!check" - -build() { - make -j1 -} - -package() { - DESTDIR="$pkgdir" make install -} - -sha512sums="68e04aae2cf585a6082f6f60c8fbc8a864204bc6c2333d9683bb044f0f24926887e137135987f2e494e0e2e62a76b110334974e24347b88a3115b767efeaf2d7 dsme-0.61.5.tar.gz -174cd9b35b47c8e5573510ae6e4b7a1fbdefe00a2f7622c620acd6ab19f4d56752b0a78be96b1866cbeb7d03a867a8561b050e54b96ff81f33deae25c2404100 build-fix.patch" diff --git a/maemo/dsme/build-fix.patch b/maemo/dsme/build-fix.patch deleted file mode 100644 index d0e792ffb..000000000 --- a/maemo/dsme/build-fix.patch +++ /dev/null @@ -1,84 +0,0 @@ -From 826bf12619b368899d49d0f72957ad42ef863642 Mon Sep 17 00:00:00 2001 -From: NeKit -Date: Thu, 10 Oct 2019 13:47:50 +0200 -Subject: [PATCH] Fix compilation on postmarketOS with musl - ---- - Rules.make | 2 +- - util/Makefile | 12 ++++++------ - util/dsmetest.c | 2 +- - util/dsmetool.c | 2 +- - 4 files changed, 9 insertions(+), 9 deletions(-) - -diff --git a/Rules.make b/Rules.make -index c02de3e..d9b9a42 100644 ---- a/Rules.make -+++ b/Rules.make -@@ -185,7 +185,7 @@ $(DISTCLN_SUBDIRS): - # Common rule for all executables - ifndef INSTALLING - $(BINARIES): -- $(CC) -o $@ $(LDFLAGS) $(call TARGET_OBJS,$@) $(addprefix -l,$($@_SO_LIBS) $($@_A_LIBS) $($@_LIBS)) -+ $(CC) -o $@ $(call TARGET_OBJS,$@) $(LDFLAGS) $(addprefix -l,$($@_SO_LIBS) $($@_A_LIBS) $($@_LIBS)) - endif - - -diff --git a/util/Makefile b/util/Makefile -index e592d13..6dac30a 100644 ---- a/util/Makefile -+++ b/util/Makefile -@@ -8,19 +8,19 @@ BINARIES := batttest dsmetool dsmetest bootstate waitfordsme dsmereboot - # Target composition and overrides - # - batttest_C_OBJS := batttest.o --batttest_LIBS := dsme -+batttest_LIBS := dsme glib-2.0 - dsmetool_C_OBJS := dsmetool.o --dsmetool_LIBS := dsme -+dsmetool_LIBS := dsme glib-2.0 - dsmetest_C_OBJS := dsmetest.o --dsmetest_LIBS := dsme -+dsmetest_LIBS := dsme glib-2.0 - bootstate_C_OBJS := bootstate.o --bootstate_LIBS := dsme -+bootstate_LIBS := dsme glib-2.0 - waitfordsme_C_OBJS := waitfordsme.o --waitfordsme_LIBS := dsme -+waitfordsme_LIBS := dsme glib-2.0 - kicker_C_OBJS := kicker.o - kicker_LIBS := dsme cal - dsmereboot_C_OBJS := dsmereboot.o --dsmereboot_LIBS := dsme -+dsmereboot_LIBS := dsme glib-2.0 - - - # -diff --git a/util/dsmetest.c b/util/dsmetest.c -index 2fc0f56..8a95547 100644 ---- a/util/dsmetest.c -+++ b/util/dsmetest.c -@@ -29,7 +29,7 @@ - #include - #include - #include --#include -+#include - #include - #include - #include -diff --git a/util/dsmetool.c b/util/dsmetool.c -index 251a883..0e5d2a8 100644 ---- a/util/dsmetool.c -+++ b/util/dsmetool.c -@@ -32,7 +32,7 @@ - #include - #include - #include --#include -+#include - #include - #include - #include --- -2.23.0 - diff --git a/maemo/gconf/APKBUILD b/maemo/gconf/APKBUILD deleted file mode 100644 index af11156f3..000000000 --- a/maemo/gconf/APKBUILD +++ /dev/null @@ -1,36 +0,0 @@ -# Removed upstream in Alpine but libhildon still depends on it -pkgname=gconf -pkgver=3.2.6 -pkgrel=5 -pkgdesc="GNOME configuration system" -url="http://projects.gnome.org/gconf" -arch="all" -license="GPL-2.0-or-later" -depends_dev="libxml2-dev gtk+3.0-dev polkit-dev" -makedepends="$depends_dev gobject-introspection-dev glib-dev intltool" -subpackages="$pkgname-dev $pkgname-doc $pkgname-lang" -source="https://download.gnome.org/sources/GConf/${pkgver%.*}/GConf-$pkgver.tar.xz" - -builddir="$srcdir"/GConf-"$pkgver" - -build() { - ./configure \ - --build=$CBUILD \ - --host=$CHOST \ - --prefix=/usr \ - --sysconfdir=/etc \ - --disable-static \ - --disable-orbit \ - --enable-gsettings-backend - make -} - -check() { - make check -} - -package() { - make DESTDIR="$pkgdir" install -} - -sha512sums="35f5f659f9d03f7531a7102adacbda0eb310d8a55a831c768c91a82e07dae21247726e00e0e411f63b1de9ade0f042ded572a3ea4a4b2ad3135231f344540b58 GConf-3.2.6.tar.xz" diff --git a/maemo/gtk+2.0-maemo/APKBUILD b/maemo/gtk+2.0-maemo/APKBUILD deleted file mode 100644 index 42cf17394..000000000 --- a/maemo/gtk+2.0-maemo/APKBUILD +++ /dev/null @@ -1,141 +0,0 @@ -# Contributor: Nikita Ukhrenkov -# Contributor: Bart Ribbers -# Maintainer: Nikita Ukhrenkov -pkgname=gtk+2.0-maemo -pkgver=2.24.31 -_tag=2.24.25 -pkgrel=7 -subpkg=gtk-update-icon-cache -pkgdesc="The GTK+ Toolkit (v2)" -url="http://www.gtk.org/" -install="$pkgname.post-install $pkgname.post-upgrade $pkgname.post-deinstall" -triggers="$subpkg.trigger=/usr/share/icons/*" -arch="all !armhf !armv7" -license="LGPL-2.0-or-later" -subpackages="$pkgname-dev $subpkg:icon_cache" -# $pkgname-doc and $pkgname-lang are available but are not any different from gtk+2.0, so let's just disable them -depends="shared-mime-info gtk-update-icon-cache" - -replaces="gtk+ gtk+-dev gtk+-doc" -provides="gtk+2.0" - -depends_dev=" - atk-dev - cairo-dev - intltool - libxdamage-dev - pango-dev - " -# we add hicolor-icon-theme because the subpackage gtk-update-icon-cache -# needs it. We need to force hicolor-icon-cache to be built before gtk+.2.0 -makedepends=" - autoconf automake libtool - $depends_dev - cups-dev - expat-dev - gdk-pixbuf-dev - gettext-dev - glib-dev - gnutls-dev - gobject-introspection-dev - gtk-doc - hicolor-icon-theme - libice-dev - libx11-dev - libxcomposite-dev - libxcursor-dev - libxext-dev - libxfixes-dev - libxrandr-dev - libxi-dev - zlib-dev - py3-six - " -_repo_raw_url=https://raw.githubusercontent.com/maemo-leste/gtk -source="http://ftp.gnome.org/pub/gnome/sources/gtk+/${pkgver%.*}/gtk+-$pkgver.tar.xz - hildonize-gdk-window.patch::$_repo_raw_url/$_tag/debian/patches/hildonize-gdk-window.diff - hildonize-gtk-container.patch::$_repo_raw_url/$_tag/debian/patches/hildonize-gtk-container.diff - hildonize-gtk-dialog.patch::$_repo_raw_url/$_tag/debian/patches/hildonize-gtk-dialog.diff - hildonize-gtk-entry.patch::$_repo_raw_url/$_tag/debian/patches/hildonize-gtk-entry.diff - hildonize-gtk-enums.patch::$_repo_raw_url/$_tag/debian/patches/hildonize-gtk-enums.diff - hildonize-gtk-iconview.patch::$_repo_raw_url/$_tag/debian/patches/hildonize-gtk-iconview.diff - hildonize-gtk-imcontext.patch::$_repo_raw_url/$_tag/debian/patches/hildonize-gtk-imcontext.diff - hildonize-gtk-menu.patch::$_repo_raw_url/$_tag/debian/patches/hildonize-gtk-menu.diff - hildonize-gtk-rbtree.patch::$_repo_raw_url/$_tag/debian/patches/hildonize-gtk-rbtree.diff - hildonize-gtk-textview.patch::$_repo_raw_url/$_tag/debian/patches/hildonize-gtk-textview.diff - hildonize-gtk-widget.patch::$_repo_raw_url/$_tag/debian/patches/hildonize-gtk-widget.diff - hildonize-gtk-window.patch::$_repo_raw_url/$_tag/debian/patches/hildonize-gtk-window.diff - xid-collision-debug.patch - gtk2-fixdso.patch - hildonize-gtk-treeview.patch - " - -builddir="$srcdir/gtk+-$pkgver" -prepare() { - default_prepare - - libtoolize --force \ - && aclocal -I m4 \ - && autoconf \ - && automake --add-missing -} - -build() { - ./configure \ - --build=$CBUILD \ - --host=$CHOST \ - --prefix=/usr \ - --sysconfdir=/etc \ - --localstatedir=/var \ - --with-xinput=yes \ - --without-libjasper \ - --with-included-loaders=png - # https://bugzilla.gnome.org/show_bug.cgi?id=655517 - sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool - make -} - -package() { - DESTDIR="$pkgdir" make install - - rm -r \ - "$pkgdir"/usr/share/locale \ - "$pkgdir"/usr/share/gtk-doc -} - -dev() { - mkdir -p "$subpkgdir"/usr/bin "$subpkgdir"/usr/share/ - mv "$pkgdir"/usr/share/gtk-2.0 "$subpkgdir"/usr/share/ - default_dev - replaces="gtk+2.0" - provides="gtk+2.0-dev=$pkgver" - - mv "$pkgdir"/usr/bin/gtk-builder-convert \ - "$pkgdir"/usr/bin/gtk-demo \ - "$subpkgdir"/usr/bin -} - -icon_cache() { - depends="hicolor-icon-theme" - provides="gtk+2.0-icon_cache=$pkgver" - - mkdir -p "$subpkgdir"/usr/bin - mv "$pkgdir"/usr/bin/"$subpkg" "$subpkgdir"/usr/bin -} - -sha512sums="75b846661308d94b5236e7e1c367deabf57753792ca87e92f9769822dd5ec90e00cd8d5574adcc12162e3702e1ae6dc152278a1d218f9bd9e4d1c8dc1dd520c1 gtk+-2.24.31.tar.xz -f838b74958b4f5f1f37fb2831c07dfb7ea051fd62c74f17d8848736e1bbd5671b9a8a66e5a34ce131669a05b2e99312fa43a91ef1d456a914f2d308c09412681 hildonize-gdk-window.patch -809135f8921bf42c0684be6183eb626ec21db87ead3cb3efbfb59d1b6c57f6d2bc61f23cdf54ed6521de1a74c606ed69cb9991332edb938b076baecd805154b2 hildonize-gtk-container.patch -77c37f91e989b9e6326b9b2c1bf32f5feaa7b81ec5742f5fb1c5b6db07de4efcc9753beadb9517fe8e04983e11d122b5dfd94897bc8bdb2d68cf7dfffdb1b46e hildonize-gtk-dialog.patch -29ea967378c84e907f7a102bcf6cd893c12c25586c95b2a2994e92dd1f1e82996bfb1416cef47a17ff6b8a225a222cd545b2080d45d190d9061a0f1ecf2baf37 hildonize-gtk-entry.patch -a65dc9a3f5e2967d382d8f13781bf446441bea23d84740eaf43e4ce7ee14b3592b7f105f4b89b7246c42f5be9a9e1e9ae93ac23bc6b62ae9c09b45a0eb6a273d hildonize-gtk-enums.patch -44ba4adcd50c589990af195d3b25baed8098ef8f7f191d841b9ce86bf7e65a48c4e8222a755eca1373eaabe6a79db9c3721f0fa690cca5e5e31fd9b4c3fc69bb hildonize-gtk-iconview.patch -ece16de21b19ccb7b08bad78880fa83765bb562973cf73249a9b2b617e0918e231d54bf64ee82648901c7f6c4af4220b06547dc9a17bbb77fab9e83c08cdcfe7 hildonize-gtk-imcontext.patch -44cd0f71316f38da52ad0e9db3681bf4fbf83c9175b98bb9241d0bedf3f66ed6923c8aa6c9c26264ee4d7b5f8abb15f2ab7cd9f1eaf037273bf94ec50ff4ea41 hildonize-gtk-menu.patch -d664555b7e7a98a567548d403e3df0d0534312ba6947d422a0d68dddbaa786806a842a25dcb5f4a0e1235a2f64d6920f67bf93b4574540d4af2337e1d5b68f2c hildonize-gtk-rbtree.patch -f4c1978b1cbd00cc28779f1cda99434f2f5aec53fd6564282d7d2c5ac5d4869207d38a31ad971bfa09eefe5a78030b3c4c169cbdbd7f5e3b2f7c42bed7f58e56 hildonize-gtk-textview.patch -aa3100404b4fe4509ec52c79384e5e59585d482947e394ad26f9c83ad11c9a19f2b0f66112ba9c74feb7a0c7d1b5ec54c64fac34ec0c03666b3ecb62160db8b6 hildonize-gtk-widget.patch -7622b5ff6cd1c0705eee7ad5789c675055a79a4b0aaf2f25fdab4a6fdf883e6fbdef22145d2f2ce4ada3015bd7a8424f61a325a8d00c80e26bf1b507c7949318 hildonize-gtk-window.patch -89e3223c86731a76b12d39245f1ec4cf8b4860ab1d11d74a10e5deb0db302f20b4bb5d9034da1d8aeb96369dbdeddcdd2f28943270dc501476c694562b960159 xid-collision-debug.patch -95f28633a5164a2a9fec45ee1aa80bd1c07e0c5a7ac8d770b9c74af0909b7286b823eb634aa384cad609dc8799d2e6c9e8392c2732b9093076fdf94b4f6878b7 gtk2-fixdso.patch -87bdabbbbf41469abf67f53afd77edbe69ce41638c1bc3cfb049864e5105fc565dfdbacd0f95381f2a9e2225d18b1c57a5a1e2c77846c3aca1a09e6dea334b8d hildonize-gtk-treeview.patch" diff --git a/maemo/gtk+2.0-maemo/automake.patch b/maemo/gtk+2.0-maemo/automake.patch deleted file mode 100644 index 106597974..000000000 --- a/maemo/gtk+2.0-maemo/automake.patch +++ /dev/null @@ -1,19 +0,0 @@ ---- ./configure.in.orig 2012-12-31 14:40:30.297439517 +0000 -+++ ./configure.in 2012-12-31 14:40:51.587629835 +0000 -@@ -51,7 +51,7 @@ - cflags_set=${CFLAGS+set} - - AM_INIT_AUTOMAKE([no-define -Wno-portability dist-bzip2]) --AM_CONFIG_HEADER(config.h) -+AC_CONFIG_HEADER(config.h) - - # Support silent build rules, requires at least automake-1.11. Enable - # by either passing --enable-silent-rules to configure or passing V=0 -@@ -300,7 +300,6 @@ - - # Checks for programs. - AC_ISC_POSIX --AM_PROG_CC_STDC - AM_PROG_CC_C_O - AC_PROG_INSTALL - AC_PROG_MAKE_SET diff --git a/maemo/gtk+2.0-maemo/gtk+2.0-maemo.post-deinstall b/maemo/gtk+2.0-maemo/gtk+2.0-maemo.post-deinstall deleted file mode 100644 index ea39aa8bf..000000000 --- a/maemo/gtk+2.0-maemo/gtk+2.0-maemo.post-deinstall +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh - -# since we depend on coreutils and busybox trigger has not yet run, we -# use busybox directly as workaround -/bin/busybox rm -f etc/gtk-2.0/gtk.immodules -/bin/busybox rm -f etc/gtk-2.0/gdk-pixbuf.loaders - diff --git a/maemo/gtk+2.0-maemo/gtk+2.0-maemo.post-install b/maemo/gtk+2.0-maemo/gtk+2.0-maemo.post-install deleted file mode 100644 index 80444cfb9..000000000 --- a/maemo/gtk+2.0-maemo/gtk+2.0-maemo.post-install +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh - -usr/bin/gtk-query-immodules-2.0 > etc/gtk-2.0/gtk.immodules -usr/bin/gdk-pixbuf-query-loaders > etc/gtk-2.0/gdk-pixbuf.loaders - diff --git a/maemo/gtk+2.0-maemo/gtk+2.0-maemo.post-upgrade b/maemo/gtk+2.0-maemo/gtk+2.0-maemo.post-upgrade deleted file mode 120000 index 67250f726..000000000 --- a/maemo/gtk+2.0-maemo/gtk+2.0-maemo.post-upgrade +++ /dev/null @@ -1 +0,0 @@ -gtk+2.0-maemo.post-install \ No newline at end of file diff --git a/maemo/gtk+2.0-maemo/gtk-update-icon-cache.trigger b/maemo/gtk+2.0-maemo/gtk-update-icon-cache.trigger deleted file mode 100644 index a106f5f08..000000000 --- a/maemo/gtk+2.0-maemo/gtk-update-icon-cache.trigger +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh - -for i in "$@"; do - if ! [ -e "$i" ]; then - continue - fi - gtk-update-icon-cache -q -t -f "$i" -done - diff --git a/maemo/gtk+2.0-maemo/gtk2-fixdso.patch b/maemo/gtk+2.0-maemo/gtk2-fixdso.patch deleted file mode 100644 index 3ea784699..000000000 --- a/maemo/gtk+2.0-maemo/gtk2-fixdso.patch +++ /dev/null @@ -1,15 +0,0 @@ ---- gtk+-2.24.8/gtk/Makefile.am.orig 2012-02-01 11:14:25.468115547 +0000 -+++ gtk+-2.24.8/gtk/Makefile.am 2012-02-01 11:14:57.920116650 +0000 -@@ -904,10 +904,10 @@ - libgtk_quartz_2_0_la_SOURCES = $(gtk_c_sources) - libgtk_directfb_2_0_la_SOURCES = $(gtk_c_sources) - --libgtk_x11_2_0_la_LDFLAGS = $(libtool_opts) -+libgtk_x11_2_0_la_LDFLAGS = $(libtool_opts) -lgmodule-2.0 - libgtk_win32_2_0_la_LDFLAGS = $(libtool_opts) -Wl,-luuid - libgtk_quartz_2_0_la_LDFLAGS = $(libtool_opts) --libgtk_directfb_2_0_la_LDFLAGS = $(libtool_opts) -+libgtk_directfb_2_0_la_LDFLAGS = $(libtool_opts) -lgmodule-2.0 - - libgtk_x11_2_0_la_LIBADD = $(libadd) - libgtk_win32_2_0_la_LIBADD = $(libadd) -lole32 -lgdi32 -lcomdlg32 -lwinspool -lcomctl32 diff --git a/maemo/gtk+2.0-maemo/hildonize-gtk-treeview.patch b/maemo/gtk+2.0-maemo/hildonize-gtk-treeview.patch deleted file mode 100644 index 0ceb50cea..000000000 --- a/maemo/gtk+2.0-maemo/hildonize-gtk-treeview.patch +++ /dev/null @@ -1,3595 +0,0 @@ ---- a/gtk/gtktreeview.c -+++ b/gtk/gtktreeview.c -@@ -43,6 +43,8 @@ - #include "gtkframe.h" - #include "gtktreemodelsort.h" - #include "gtktooltip.h" -+#include "gtkicontheme.h" -+#include "gtkeventbox.h" - #include "gtkprivate.h" - #include "gtkalias.h" - -@@ -54,6 +56,9 @@ - #define GTK_TREE_VIEW_SEARCH_DIALOG_TIMEOUT 5000 - #define AUTO_EXPAND_TIMEOUT 500 - -+#define HILDON_TICK_MARK_SIZE 48 -+#define HILDON_ROW_HEADER_HEIGHT 35 -+ - /* The "background" areas of all rows/cells add up to cover the entire tree. - * The background includes all inter-row and inter-cell spacing. - * The "cell" areas are the cell_area passed in to gtk_cell_renderer_render(), -@@ -120,6 +125,8 @@ - EXPAND_COLLAPSE_CURSOR_ROW, - SELECT_CURSOR_PARENT, - START_INTERACTIVE_SEARCH, -+ ROW_INSENSITIVE, -+ HILDON_ROW_TAPPED, - LAST_SIGNAL - }; - -@@ -144,7 +151,10 @@ - PROP_RUBBER_BANDING, - PROP_ENABLE_GRID_LINES, - PROP_ENABLE_TREE_LINES, -- PROP_TOOLTIP_COLUMN -+ PROP_TOOLTIP_COLUMN, -+ PROP_HILDON_UI_MODE, -+ PROP_ACTION_AREA_VISIBLE, -+ PROP_ACTION_AREA_ORIENTATION - }; - - /* object signals */ -@@ -478,9 +488,16 @@ - static void add_scroll_timeout (GtkTreeView *tree_view); - static void remove_scroll_timeout (GtkTreeView *tree_view); - --static guint tree_view_signals [LAST_SIGNAL] = { 0 }; -+static gboolean gtk_tree_view_tap_and_hold_query (GtkWidget *widget, -+ GdkEvent *event); -+static void free_queued_select_row (GtkTreeView *tree_view); -+static void free_queued_activate_row (GtkTreeView *tree_view); -+static void free_queued_actions (GtkTreeView *tree_view); - -- -+static void hildon_tree_view_set_action_area_height (GtkTreeView *tree_view); -+static void hildon_tree_view_setup_row_header_layout (GtkTreeView *tree_view); -+ -+static guint tree_view_signals [LAST_SIGNAL] = { 0 }; - - /* GType Methods - */ -@@ -544,6 +561,12 @@ - widget_class->grab_notify = gtk_tree_view_grab_notify; - widget_class->state_changed = gtk_tree_view_state_changed; - -+ g_signal_override_class_closure (g_signal_lookup ("tap-and-hold-query", -+ GTK_TYPE_WIDGET), -+ GTK_TYPE_TREE_VIEW, -+ g_cclosure_new (G_CALLBACK (gtk_tree_view_tap_and_hold_query), -+ NULL, NULL)); -+ - /* GtkContainer signals */ - container_class->remove = gtk_tree_view_remove; - container_class->forall = gtk_tree_view_forall; -@@ -715,7 +738,7 @@ - g_param_spec_boolean ("show-expanders", - P_("Show Expanders"), - P_("View has expanders"), -- TRUE, -+ FALSE, - GTK_PARAM_READWRITE)); - - /** -@@ -732,7 +755,7 @@ - P_("Extra indentation for each level"), - 0, - G_MAXINT, -- 0, -+ 10, - GTK_PARAM_READWRITE)); - - g_object_class_install_property (o_class, -@@ -740,7 +763,7 @@ - g_param_spec_boolean ("rubber-banding", - P_("Rubber Banding"), - P_("Whether to enable selection of multiple items by dragging the mouse pointer"), -- FALSE, -+ TRUE, - GTK_PARAM_READWRITE)); - - g_object_class_install_property (o_class, -@@ -770,10 +793,73 @@ - -1, - GTK_PARAM_READWRITE)); - -+ /** -+ * GtkTreeView:hildon-ui-mode: -+ * -+ * Specifies which UI mode to use. A setting of #HILDON_UI_MODE_NORMAL -+ * will cause the tree view to disable selections and emit row-activated -+ * as soon as a row is pressed. When #HILDON_UI_MODE_EDIT is set, -+ * selections can be made according to the setting of the mode on -+ * GtkTreeSelection. -+ * -+ * Toggling this property will cause the tree view to select an -+ * appropriate selection mode if not already done. -+ * -+ * Since: maemo 5.0 -+ * Stability: unstable -+ */ -+ g_object_class_install_property (o_class, -+ PROP_HILDON_UI_MODE, -+ g_param_spec_enum ("hildon-ui-mode", -+ P_("Hildon UI Mode"), -+ P_("The Hildon UI mode according to which the tree view should behave"), -+ HILDON_TYPE_UI_MODE, -+ HILDON_UI_MODE_NORMAL, -+ GTK_PARAM_READWRITE)); -+ -+ /** -+ * GtkTreeView:action-area-visible: -+ * -+ * Makes the action area of the GtkTreeView visible or invisible. -+ * Based on the value of the GtkTreeView:action-area-orientation -+ * property a certain height will be allocated above the first row -+ * for the action area. -+ * -+ * Since: maemo 5.0 -+ * Stability: unstable -+ */ -+ g_object_class_install_property (o_class, -+ PROP_ACTION_AREA_VISIBLE, -+ g_param_spec_boolean ("action-area-visible", -+ P_("Action Area Visible"), -+ P_("Whether the action area above the first row is visible"), -+ FALSE, -+ GTK_PARAM_READWRITE)); -+ -+ /** -+ * GtkTreeView:action-area-orientation: -+ * -+ * Sets the orientation of the action area. This is either -+ * horizontal (landscape) or vertical (portrait). The height of -+ * the action area depends on this setting. -+ * -+ * Since: maemo 5.0 -+ * Stability: unstable -+ */ -+ g_object_class_install_property (o_class, -+ PROP_ACTION_AREA_ORIENTATION, -+ g_param_spec_enum ("action-area-orientation", -+ P_("Action Area Orientation"), -+ P_("Determines the orientation of the action area."), -+ GTK_TYPE_ORIENTATION, -+ GTK_ORIENTATION_HORIZONTAL, -+ GTK_PARAM_READWRITE)); -+ - /* Style properties */ - #define _TREE_VIEW_EXPANDER_SIZE 12 - #define _TREE_VIEW_VERTICAL_SEPARATOR 2 - #define _TREE_VIEW_HORIZONTAL_SEPARATOR 2 -+#define _TREE_VIEW_SEPARATOR_HEIGHT 2 - - gtk_widget_class_install_style_property (widget_class, - g_param_spec_int ("expander-size", -@@ -872,6 +958,43 @@ - "\1\1", - GTK_PARAM_READABLE)); - -+ /** -+ * GtkTreeView:separator-height: -+ * -+ * Height in pixels of a separator. -+ * -+ * Since: maemo 3.0 -+ * Stability: Unstable -+ */ -+ gtk_widget_class_install_style_property (widget_class, -+ g_param_spec_int ("separator-height", -+ P_("Separator height"), -+ P_("Height of the separator"), -+ 0, -+ G_MAXINT, -+ _TREE_VIEW_SEPARATOR_HEIGHT, -+ GTK_PARAM_READABLE)); -+ -+ /** -+ * GtkTreeView:row-height: -+ * -+ * Height in pixels of a row. When set, all rows will use this height, -+ * except for row separators and row headers. A value of -1 means this -+ * value is unset. Setting this property does not imply fixed height -+ * mode will be turned on, so columns are still properly autosized. -+ * -+ * Since: maemo 5.0 -+ * Stability: Unstable -+ */ -+ gtk_widget_class_install_style_property (widget_class, -+ g_param_spec_int ("row-height", -+ P_("Row height"), -+ P_("Height of a row"), -+ -1, -+ G_MAXINT, -+ -1, -+ GTK_PARAM_READABLE)); -+ - /* Signals */ - /** - * GtkTreeView::set-scroll-adjustments -@@ -1109,6 +1232,36 @@ - _gtk_marshal_BOOLEAN__VOID, - G_TYPE_BOOLEAN, 0); - -+ /** -+ * GtkTreeView::row-insensitive: -+ * @tree_view: the object which received the signal. -+ * @path: the path where the cursor is tried to be moved. -+ * -+ * Emitted when the user tries to move cursor to an insesitive row. -+ * -+ * Since: maemo 1.0 -+ * Stability: Unstable -+ */ -+ tree_view_signals[ROW_INSENSITIVE] = -+ g_signal_new ("row_insensitive", -+ G_TYPE_FROM_CLASS (o_class), -+ G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, -+ G_STRUCT_OFFSET (GtkTreeViewClass, row_insensitive), -+ NULL, NULL, -+ _gtk_marshal_VOID__OBJECT, -+ G_TYPE_NONE, 1, -+ GTK_TYPE_TREE_PATH); -+ -+ tree_view_signals[HILDON_ROW_TAPPED] = -+ g_signal_new ("hildon_row_tapped", -+ G_TYPE_FROM_CLASS (o_class), -+ G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, -+ 0, -+ NULL, NULL, -+ _gtk_marshal_VOID__BOXED, -+ G_TYPE_NONE, 1, -+ GTK_TYPE_TREE_PATH); -+ - /* Key bindings */ - gtk_tree_view_add_move_binding (binding_set, GDK_Up, 0, TRUE, - GTK_MOVEMENT_DISPLAY_LINES, -1); -@@ -1333,9 +1486,7 @@ - gtk_widget_set_can_focus (GTK_WIDGET (tree_view), TRUE); - gtk_widget_set_redraw_on_allocate (GTK_WIDGET (tree_view), FALSE); - -- tree_view->priv->flags = GTK_TREE_VIEW_SHOW_EXPANDERS -- | GTK_TREE_VIEW_DRAW_KEYFOCUS -- | GTK_TREE_VIEW_HEADERS_VISIBLE; -+ tree_view->priv->flags = GTK_TREE_VIEW_DRAW_KEYFOCUS; - - /* We need some padding */ - tree_view->priv->dy = 0; -@@ -1368,9 +1519,27 @@ - tree_view->priv->hover_selection = FALSE; - tree_view->priv->hover_expand = FALSE; - -- tree_view->priv->level_indentation = 0; -+ tree_view->priv->level_indentation = 10; -+ -+ tree_view->priv->queued_select_row = NULL; -+ tree_view->priv->queued_expand_row = NULL; -+ tree_view->priv->queued_activate_row = NULL; -+ tree_view->priv->queued_tapped_row = NULL; -+ -+ tree_view->priv->highlighted_node = NULL; -+ tree_view->priv->highlighted_tree = NULL; -+ -+ tree_view->priv->queued_ctrl_pressed = FALSE; -+ tree_view->priv->queued_shift_pressed = FALSE; -+ -+ tree_view->priv->hildon_ui_mode = HILDON_UI_MODE_NORMAL; -+ gtk_widget_style_get (GTK_WIDGET (tree_view), -+ "hildon-mode", &tree_view->priv->hildon_mode, -+ NULL); - -- tree_view->priv->rubber_banding_enable = FALSE; -+ tree_view->priv->level_indentation = 10; -+ -+ tree_view->priv->rubber_banding_enable = TRUE; - - tree_view->priv->grid_lines = GTK_TREE_VIEW_GRID_LINES_NONE; - tree_view->priv->tree_lines_enabled = FALSE; -@@ -1384,9 +1553,13 @@ - - tree_view->priv->event_last_x = -10000; - tree_view->priv->event_last_y = -10000; --} - -- -+ tree_view->priv->rows_offset = 0; -+ tree_view->priv->action_area_visible = FALSE; -+ tree_view->priv->action_area_orientation = GTK_ORIENTATION_HORIZONTAL; -+ tree_view->priv->action_area_event_box = NULL; -+ tree_view->priv->action_area_box = NULL; -+} - - /* GObject Methods - */ -@@ -1460,6 +1633,15 @@ - case PROP_TOOLTIP_COLUMN: - gtk_tree_view_set_tooltip_column (tree_view, g_value_get_int (value)); - break; -+ case PROP_HILDON_UI_MODE: -+ hildon_tree_view_set_hildon_ui_mode (tree_view, g_value_get_enum (value)); -+ break; -+ case PROP_ACTION_AREA_VISIBLE: -+ hildon_tree_view_set_action_area_visible (tree_view, g_value_get_boolean (value)); -+ break; -+ case PROP_ACTION_AREA_ORIENTATION: -+ hildon_tree_view_set_action_area_orientation (tree_view, g_value_get_enum (value)); -+ break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; -@@ -1535,6 +1717,15 @@ - case PROP_TOOLTIP_COLUMN: - g_value_set_int (value, tree_view->priv->tooltip_column); - break; -+ case PROP_HILDON_UI_MODE: -+ g_value_set_enum (value, tree_view->priv->hildon_ui_mode); -+ break; -+ case PROP_ACTION_AREA_VISIBLE: -+ g_value_set_boolean (value, tree_view->priv->action_area_visible); -+ break; -+ case PROP_ACTION_AREA_ORIENTATION: -+ g_value_set_enum (value, tree_view->priv->action_area_orientation); -+ break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; -@@ -1595,6 +1786,8 @@ - tree_view->priv->prelight_node = NULL; - tree_view->priv->expanded_collapsed_node = NULL; - tree_view->priv->expanded_collapsed_tree = NULL; -+ tree_view->priv->highlighted_node = NULL; -+ tree_view->priv->highlighted_tree = NULL; - } - - static void -@@ -1650,6 +1843,30 @@ - tree_view->priv->top_row = NULL; - } - -+ if (tree_view->priv->queued_select_row != NULL) -+ { -+ gtk_tree_row_reference_free (tree_view->priv->queued_select_row); -+ tree_view->priv->queued_select_row = NULL; -+ } -+ -+ if (tree_view->priv->queued_expand_row != NULL) -+ { -+ gtk_tree_row_reference_free (tree_view->priv->queued_expand_row); -+ tree_view->priv->queued_expand_row = NULL; -+ } -+ -+ if (tree_view->priv->queued_activate_row != NULL) -+ { -+ gtk_tree_row_reference_free (tree_view->priv->queued_activate_row); -+ tree_view->priv->queued_activate_row = NULL; -+ } -+ -+ if (tree_view->priv->queued_tapped_row != NULL) -+ { -+ gtk_tree_row_reference_free (tree_view->priv->queued_tapped_row); -+ tree_view->priv->queued_tapped_row = NULL; -+ } -+ - if (tree_view->priv->column_drop_func_data && - tree_view->priv->column_drop_func_data_destroy) - { -@@ -1701,6 +1918,24 @@ - tree_view->priv->row_separator_data = NULL; - } - -+ if (tree_view->priv->row_header_destroy && tree_view->priv->row_header_data) -+ { -+ (* tree_view->priv->row_header_destroy) (tree_view->priv->row_header_data); -+ tree_view->priv->row_header_data = NULL; -+ } -+ -+ if (tree_view->priv->row_header_layout) -+ { -+ g_object_unref (tree_view->priv->row_header_layout); -+ tree_view->priv->row_header_layout = NULL; -+ } -+ -+ if (tree_view->priv->tickmark_icon) -+ { -+ g_object_unref (tree_view->priv->tickmark_icon); -+ tree_view->priv->tickmark_icon = NULL; -+ } -+ - gtk_tree_view_set_model (tree_view, NULL); - - if (tree_view->priv->hadjustment) -@@ -2036,7 +2271,7 @@ - if (tree_view->priv->tree == NULL) - tree_view->priv->height = 0; - else -- tree_view->priv->height = tree_view->priv->tree->root->offset; -+ tree_view->priv->height = tree_view->priv->tree->root->offset + tree_view->priv->rows_offset; - } - - static void -@@ -2228,6 +2463,13 @@ - number_of_expand_columns++; - } - -+ if (tree_view->priv->hildon_mode == HILDON_FREMANTLE -+ && tree_view->priv->hildon_ui_mode == HILDON_UI_MODE_EDIT -+ && tree_view->priv->selection->type == GTK_SELECTION_MULTIPLE) -+ { -+ full_requested_width += HILDON_TICK_MARK_SIZE; -+ } -+ - /* Only update the expand value if the width of the widget has changed, - * or the number of expand columns has changed, or if there are no expand - * columns, or if we didn't have an size-allocation yet after the -@@ -2381,6 +2623,17 @@ - allocation.y = child->y; - allocation.width = child->width; - allocation.height = child->height; -+ -+ if (tree_view->priv->rows_offset != 0 -+ && tree_view->priv->action_area_event_box == child->widget) -+ { -+ /* Set the child's location to be the area above the first row */ -+ allocation.x = 0; -+ allocation.y = -tree_view->priv->dy; -+ allocation.width = MAX (widget->allocation.width, tree_view->priv->width); -+ allocation.height = tree_view->priv->rows_offset; -+ } -+ - gtk_widget_size_allocate (child->widget, &allocation); - } - -@@ -2521,25 +2774,41 @@ - static inline gboolean - row_is_separator (GtkTreeView *tree_view, - GtkTreeIter *iter, -+ gboolean *is_header, - GtkTreePath *path) - { - gboolean is_separator = FALSE; -+ GtkTreeIter tmpiter; - -- if (tree_view->priv->row_separator_func) -+ if (tree_view->priv->row_separator_func -+ || tree_view->priv->row_header_func) - { -- GtkTreeIter tmpiter; -- - if (iter) -- tmpiter = *iter; -+ tmpiter = *iter; - else -- { -- if (!gtk_tree_model_get_iter (tree_view->priv->model, &tmpiter, path)) -- return FALSE; -- } -+ gtk_tree_model_get_iter (tree_view->priv->model, &tmpiter, path); -+ } - -- is_separator = tree_view->priv->row_separator_func (tree_view->priv->model, -- &tmpiter, -- tree_view->priv->row_separator_data); -+ if (tree_view->priv->row_separator_func) -+ { -+ is_separator = (* tree_view->priv->row_separator_func) (tree_view->priv->model, -+ &tmpiter, -+ tree_view->priv->row_separator_data); -+ } -+ -+ if (tree_view->priv->row_header_func) -+ { -+ gboolean tmp; -+ -+ tmp = (* tree_view->priv->row_header_func) (tree_view->priv->model, -+ &tmpiter, -+ NULL, -+ tree_view->priv->row_header_data); -+ -+ is_separator |= tmp; -+ -+ if (is_header) -+ *is_header = tmp; - } - - return is_separator; -@@ -2589,6 +2858,7 @@ - gboolean row_double_click = FALSE; - gboolean rtl; - gboolean node_selected; -+ gboolean node_is_selectable; - - /* Empty tree? */ - if (tree_view->priv->tree == NULL) -@@ -2633,7 +2903,7 @@ - - /* Get the path and the node */ - path = _gtk_tree_view_find_path (tree_view, tree, node); -- path_is_selectable = !row_is_separator (tree_view, NULL, path); -+ path_is_selectable = !row_is_separator (tree_view, NULL, NULL, path); - - if (!path_is_selectable) - { -@@ -2689,6 +2959,17 @@ - break; - } - -+ if (tree_view->priv->hildon_mode == HILDON_FREMANTLE -+ && tree_view->priv->hildon_ui_mode == HILDON_UI_MODE_EDIT -+ && tree_view->priv->selection->type == GTK_SELECTION_MULTIPLE -+ && (gint)event->x < background_area.x + HILDON_TICK_MARK_SIZE) -+ { -+ GList *list; -+ -+ list = (rtl ? g_list_first (tree_view->priv->columns) : g_list_last (tree_view->priv->columns)); -+ column = list->data; -+ } -+ - if (column == NULL) - { - gtk_tree_path_free (path); -@@ -2765,6 +3046,39 @@ - gtk_tree_path_free (anchor); - } - -+ node_selected = GTK_RBNODE_FLAG_SET (node, GTK_RBNODE_IS_SELECTED); -+ node_is_selectable = -+ _gtk_tree_selection_row_is_selectable (tree_view->priv->selection, -+ node, path); -+ -+ /* Save press to possibly begin a drag -+ */ -+ if (!column_handled_click && -+ !tree_view->priv->in_grab && -+ tree_view->priv->pressed_button < 0) -+ { -+ tree_view->priv->pressed_button = event->button; -+ tree_view->priv->press_start_x = event->x; -+ tree_view->priv->press_start_y = event->y; -+ -+ if (tree_view->priv->hildon_mode == HILDON_DIABLO -+ && tree_view->priv->rubber_banding_enable -+ && node_is_selectable -+ && !node_selected -+ && tree_view->priv->selection->type == GTK_SELECTION_MULTIPLE) -+ { -+ tree_view->priv->press_start_y += tree_view->priv->dy; -+ tree_view->priv->rubber_band_x = event->x; -+ tree_view->priv->rubber_band_y = event->y + tree_view->priv->dy; -+ tree_view->priv->rubber_band_status = RUBBER_BAND_MAYBE_START; -+ -+ if ((event->state & GDK_CONTROL_MASK) == GDK_CONTROL_MASK) -+ tree_view->priv->rubber_band_modify = TRUE; -+ if ((event->state & GDK_SHIFT_MASK) == GDK_SHIFT_MASK) -+ tree_view->priv->rubber_band_extend = TRUE; -+ } -+ } -+ - /* select */ - node_selected = GTK_RBNODE_FLAG_SET (node, GTK_RBNODE_IS_SELECTED); - pre_val = tree_view->priv->vadjustment->value; -@@ -2782,7 +3096,106 @@ - if (focus_cell) - gtk_tree_view_column_focus_cell (column, focus_cell); - -- if (event->state & GTK_MODIFY_SELECTION_MOD_MASK) -+ /* The most reliable way is to use another row reference, -+ * instead of trying to get it done with the intricate -+ * logic below. -+ */ -+ gtk_tree_row_reference_free (tree_view->priv->queued_tapped_row); -+ tree_view->priv->queued_tapped_row = -+ gtk_tree_row_reference_new (tree_view->priv->model, path); -+ -+ if (tree_view->priv->hildon_mode == HILDON_FREMANTLE -+ && tree_view->priv->hildon_ui_mode == HILDON_UI_MODE_NORMAL) -+ { -+ /* This row should be activated on button-release */ -+ gtk_tree_row_reference_free (tree_view->priv->queued_activate_row); -+ tree_view->priv->queued_activate_row = gtk_tree_row_reference_new (tree_view->priv->model, path); -+ -+ /* Mark the node as selected to create a highlight effect */ -+ tree_view->priv->highlighted_tree = tree; -+ tree_view->priv->highlighted_node = node; -+ gtk_tree_view_queue_draw_path (tree_view, path, NULL); -+ } -+ else if (tree_view->priv->hildon_mode == HILDON_DIABLO -+ && node_selected -+ && !column_handled_click -+ && gtk_tree_row_reference_valid (tree_view->priv->cursor)) -+ { -+ GtkTreePath *cursor_path; -+ -+ cursor_path = gtk_tree_row_reference_get_path (tree_view->priv->cursor); -+ if (!gtk_tree_path_compare (cursor_path, path)) -+ { -+ gtk_tree_row_reference_free (tree_view->priv->queued_activate_row); -+ tree_view->priv->queued_activate_row = gtk_tree_row_reference_new (tree_view->priv->model, path); -+ } -+ -+ gtk_tree_path_free (cursor_path); -+ } -+ -+ if (node_is_selectable -+ && tree_view->priv->hildon_mode == HILDON_DIABLO -+ && !column_handled_click -+ && !tree_view->priv->queued_activate_row -+ && tree_view->priv->rubber_band_status == RUBBER_BAND_OFF -+ && gtk_tree_selection_get_mode (tree_view->priv->selection) == GTK_SELECTION_MULTIPLE) -+ { -+ GtkTreePath *old_cursor_path = NULL; -+ -+ /* We do not know at this stage if a user is going to do -+ * a DnD or tap and hold operation, so avoid clearing -+ * the current selection. -+ */ -+ if (tree_view->priv->queued_select_row) -+ gtk_tree_row_reference_free (tree_view->priv->queued_select_row); -+ tree_view->priv->queued_select_row = NULL; -+ -+ /* Do move the focus */ -+ if (tree_view->priv->cursor) -+ { -+ old_cursor_path = gtk_tree_row_reference_get_path (tree_view->priv->cursor); -+ gtk_tree_row_reference_free (tree_view->priv->cursor); -+ } -+ -+ tree_view->priv->cursor = gtk_tree_row_reference_new (tree_view->priv->model, path); -+ -+ if (old_cursor_path) -+ { -+ gtk_tree_view_queue_draw_path (tree_view, -+ old_cursor_path, NULL); -+ gtk_tree_path_free (old_cursor_path); -+ } -+ -+ tree_view->priv->queued_ctrl_pressed = tree_view->priv->modify_selection_pressed; -+ tree_view->priv->queued_shift_pressed = tree_view->priv->extend_selection_pressed; -+ tree_view->priv->queued_select_row = -+ gtk_tree_row_reference_new (tree_view->priv->model, path); -+ -+ gtk_tree_view_queue_draw_path (tree_view, path, NULL); -+ } -+ else if (node_is_selectable -+ && tree_view->priv->hildon_mode == HILDON_FREMANTLE -+ && tree_view->priv->hildon_ui_mode == HILDON_UI_MODE_EDIT -+ && !column_handled_click -+ && !tree_view->priv->queued_activate_row) -+ { -+ /* In new-style we do not want to set cursor, -+ * instead we highlight the node. -+ */ -+ if (tree_view->priv->queued_select_row) -+ gtk_tree_row_reference_free (tree_view->priv->queued_select_row); -+ tree_view->priv->queued_select_row = NULL; -+ -+ tree_view->priv->highlighted_node = node; -+ tree_view->priv->highlighted_tree = tree; -+ -+ tree_view->priv->queued_select_row = -+ gtk_tree_row_reference_new (tree_view->priv->model, path); -+ -+ gtk_tree_view_queue_draw_path (tree_view, path, NULL); -+ } -+ /* Else, set the cursor as usual */ -+ else if (event->state & GTK_MODIFY_SELECTION_MOD_MASK) - { - gtk_tree_view_real_set_cursor (tree_view, path, FALSE, TRUE); - gtk_tree_view_real_toggle_cursor_row (tree_view); -@@ -2794,7 +3207,10 @@ - } - else - { -- gtk_tree_view_real_set_cursor (tree_view, path, TRUE, TRUE); -+ if (tree_view->priv->queued_activate_row) -+ gtk_tree_view_real_set_cursor (tree_view, path, FALSE, TRUE); -+ else -+ gtk_tree_view_real_set_cursor (tree_view, path, TRUE, TRUE); - } - - tree_view->priv->modify_selection_pressed = FALSE; -@@ -2811,74 +3227,24 @@ - cell_area.y += dval; - background_area.y += dval; - -- /* Save press to possibly begin a drag -- */ -- if (!column_handled_click && -- !tree_view->priv->in_grab && -- tree_view->priv->pressed_button < 0) -- { -- tree_view->priv->pressed_button = event->button; -- tree_view->priv->press_start_x = event->x; -- tree_view->priv->press_start_y = event->y; -- -- if (tree_view->priv->rubber_banding_enable -- && !node_selected -- && tree_view->priv->selection->type == GTK_SELECTION_MULTIPLE) -+ if (event->button == 1) -+ { -+ if (GTK_RBNODE_FLAG_SET (node, GTK_RBNODE_IS_PARENT)) - { -- tree_view->priv->press_start_y += tree_view->priv->dy; -- tree_view->priv->rubber_band_x = event->x; -- tree_view->priv->rubber_band_y = event->y + tree_view->priv->dy; -- tree_view->priv->rubber_band_status = RUBBER_BAND_MAYBE_START; -- -- if ((event->state & GTK_MODIFY_SELECTION_MOD_MASK) == GTK_MODIFY_SELECTION_MOD_MASK) -- tree_view->priv->rubber_band_modify = TRUE; -- if ((event->state & GTK_EXTEND_SELECTION_MOD_MASK) == GTK_EXTEND_SELECTION_MOD_MASK) -- tree_view->priv->rubber_band_extend = TRUE; -+ /* The behavior is as follows: -+ * - For a tap on a collapsed node: always expand (and the -+ * cursor moves to it. -+ * - For a tap on an expxanded node: collapse if and only -+ * if the node is currently the cursor node. -+ */ -+ if (!node->children -+ || (node_selected && node->children)) -+ { -+ gtk_tree_row_reference_free (tree_view->priv->queued_expand_row); -+ tree_view->priv->queued_expand_row = -+ gtk_tree_row_reference_new (tree_view->priv->model, path); -+ } - } -- } -- -- /* Test if a double click happened on the same row. */ -- if (event->button == 1 && event->type == GDK_BUTTON_PRESS) -- { -- int double_click_time, double_click_distance; -- -- g_object_get (gtk_settings_get_default (), -- "gtk-double-click-time", &double_click_time, -- "gtk-double-click-distance", &double_click_distance, -- NULL); -- -- /* Same conditions as _gdk_event_button_generate */ -- if (tree_view->priv->last_button_x != -1 && -- (event->time < tree_view->priv->last_button_time + double_click_time) && -- (ABS (event->x - tree_view->priv->last_button_x) <= double_click_distance) && -- (ABS (event->y - tree_view->priv->last_button_y) <= double_click_distance)) -- { -- /* We do no longer compare paths of this row and the -- * row clicked previously. We use the double click -- * distance to decide whether this is a valid click, -- * allowing the mouse to slightly move over another row. -- */ -- row_double_click = TRUE; -- -- tree_view->priv->last_button_time = 0; -- tree_view->priv->last_button_x = -1; -- tree_view->priv->last_button_y = -1; -- } -- else -- { -- tree_view->priv->last_button_time = event->time; -- tree_view->priv->last_button_x = event->x; -- tree_view->priv->last_button_y = event->y; -- } -- } -- -- if (row_double_click) -- { -- gtk_grab_remove (widget); -- gtk_tree_view_row_activated (tree_view, path, column); -- -- if (tree_view->priv->pressed_button == event->button) -- tree_view->priv->pressed_button = -1; - } - - gtk_tree_path_free (path); -@@ -3039,6 +3405,9 @@ - GdkEventButton *event) - { - GtkTreeView *tree_view = GTK_TREE_VIEW (widget); -+ gint new_y; -+ GtkRBTree *tree; -+ GtkRBNode *node; - - if (GTK_TREE_VIEW_FLAG_SET (tree_view, GTK_TREE_VIEW_IN_COLUMN_DRAG)) - return gtk_tree_view_button_release_drag_column (widget, event); -@@ -3052,6 +3421,171 @@ - if (GTK_TREE_VIEW_FLAG_SET (tree_view, GTK_TREE_VIEW_IN_COLUMN_RESIZE)) - return gtk_tree_view_button_release_column_resize (widget, event); - -+ if (tree_view->priv->tree) -+ { -+ /* Get the node where the mouse was released */ -+ new_y = TREE_WINDOW_Y_TO_RBTREE_Y (tree_view, event->y); -+ if (new_y < 0) -+ new_y = 0; -+ _gtk_rbtree_find_offset (tree_view->priv->tree, new_y, &tree, &node); -+ } -+ else -+ { -+ /* We just set tree and node to NULL otherwise. We still want -+ * to run through below's logic to free row references where needed. -+ */ -+ tree = NULL; -+ node = NULL; -+ } -+ -+ if (gtk_tree_row_reference_valid (tree_view->priv->queued_select_row)) -+ { -+ GtkTreePath *path; -+ GtkRBTree *select_tree; -+ GtkRBNode *select_node; -+ -+ path = gtk_tree_row_reference_get_path (tree_view->priv->queued_select_row); -+ _gtk_tree_view_find_node (tree_view, path, -+ &select_tree, &select_node); -+ -+ if (tree == select_tree && node == select_node) -+ { -+ if (tree_view->priv->queued_ctrl_pressed) -+ { -+ gtk_tree_view_real_set_cursor (tree_view, path, FALSE, TRUE); -+ gtk_tree_view_real_toggle_cursor_row (tree_view); -+ GTK_TREE_VIEW_UNSET_FLAG (tree_view, GTK_TREE_VIEW_DRAW_KEYFOCUS); -+ } -+ else if (tree_view->priv->queued_shift_pressed) -+ { -+ gtk_tree_view_real_set_cursor (tree_view, path, FALSE, TRUE); -+ gtk_tree_view_real_select_cursor_row (tree_view, FALSE); -+ GTK_TREE_VIEW_UNSET_FLAG (tree_view, GTK_TREE_VIEW_DRAW_KEYFOCUS); -+ } -+ else -+ gtk_tree_view_real_set_cursor (tree_view, path, TRUE, TRUE); -+ } -+ -+ free_queued_select_row (tree_view); -+ gtk_tree_path_free (path); -+ tree_view->priv->queued_ctrl_pressed = FALSE; -+ tree_view->priv->queued_shift_pressed = FALSE; -+ } -+ -+ if (gtk_tree_row_reference_valid (tree_view->priv->queued_activate_row)) -+ { -+ GtkTreePath *path; -+ GtkRBTree *activate_tree; -+ GtkRBNode *activate_node; -+ -+ path = gtk_tree_row_reference_get_path (tree_view->priv->queued_activate_row); -+ -+ if (tree_view->priv->hildon_mode == HILDON_FREMANTLE -+ && tree_view->priv->hildon_ui_mode == HILDON_UI_MODE_NORMAL) -+ { -+ if (tree_view->priv->highlighted_node) -+ { -+ _gtk_tree_view_queue_draw_node (tree_view, -+ tree_view->priv->highlighted_tree, -+ tree_view->priv->highlighted_node, -+ NULL); -+ -+ tree_view->priv->highlighted_tree = NULL; -+ tree_view->priv->highlighted_node = NULL; -+ } -+ } -+ -+ _gtk_tree_view_find_node (tree_view, path, -+ &activate_tree, &activate_node); -+ -+ /* Only emit activated if the mouse was released from the -+ * same row where the mouse was pressed. -+ */ -+ if (tree == activate_tree && node == activate_node) -+ { -+ gtk_tree_view_row_activated (tree_view, path, -+ tree_view->priv->focus_column); -+ } -+ -+ gtk_tree_path_free (path); -+ -+ gtk_tree_row_reference_free (tree_view->priv->queued_activate_row); -+ tree_view->priv->queued_activate_row = NULL; -+ } -+ -+ if (gtk_tree_row_reference_valid (tree_view->priv->queued_expand_row)) -+ { -+ GtkTreePath *path; -+ GtkRBTree *expand_tree; -+ GtkRBNode *expand_node = NULL; -+ -+ path = gtk_tree_row_reference_get_path (tree_view->priv->queued_expand_row); -+ -+ if (tree_view->priv->hildon_mode == HILDON_FREMANTLE) -+ { -+ /* We should not take the cursor into accont. We do check -+ * with the node where the mouse was released. -+ */ -+ _gtk_tree_view_find_node (tree_view, path, -+ &expand_tree, &expand_node); -+ -+ if (tree != expand_tree || node != expand_node) -+ expand_node = NULL; -+ } -+ else -+ { -+ GtkTreePath *cursor_path; -+ -+ cursor_path = gtk_tree_row_reference_get_path (tree_view->priv->cursor); -+ -+ if (!gtk_tree_path_compare (cursor_path, path)) -+ _gtk_tree_view_find_node (tree_view, path, -+ &expand_tree, &expand_node); -+ -+ gtk_tree_path_free (cursor_path); -+ } -+ -+ if (expand_node) -+ { -+ if (!expand_node->children) -+ gtk_tree_view_real_expand_row (tree_view, path, -+ expand_tree, expand_node, -+ FALSE, TRUE); -+ else -+ gtk_tree_view_real_collapse_row (tree_view, path, -+ expand_tree, expand_node, TRUE); -+ } -+ -+ gtk_tree_path_free (path); -+ -+ gtk_tree_row_reference_free (tree_view->priv->queued_expand_row); -+ tree_view->priv->queued_expand_row = NULL; -+ } -+ -+ /* The hildon-row-tapped signal is executed as the last, so that -+ * any action (selection change, activation, expansion/collapse) -+ * has already been processed. -+ */ -+ if (gtk_tree_row_reference_valid (tree_view->priv->queued_tapped_row)) -+ { -+ GtkTreePath *path; -+ GtkRBTree *tapped_tree; -+ GtkRBNode *tapped_node; -+ -+ path = gtk_tree_row_reference_get_path (tree_view->priv->queued_tapped_row); -+ _gtk_tree_view_find_node (tree_view, path, -+ &tapped_tree, &tapped_node); -+ -+ if (tree == tapped_tree && node == tapped_node) -+ g_signal_emit (tree_view, tree_view_signals[HILDON_ROW_TAPPED], -+ 0, path); -+ -+ gtk_tree_path_free (path); -+ -+ gtk_tree_row_reference_free (tree_view->priv->queued_tapped_row); -+ tree_view->priv->queued_tapped_row = NULL; -+ } -+ - if (tree_view->priv->button_pressed_node == NULL) - return FALSE; - -@@ -3331,6 +3865,22 @@ - } - - static void -+ensure_unhighlighted (GtkTreeView *tree_view) -+{ -+ /* Unconditionally unhighlight */ -+ if (tree_view->priv->highlighted_node) -+ { -+ _gtk_tree_view_queue_draw_node (tree_view, -+ tree_view->priv->highlighted_tree, -+ tree_view->priv->highlighted_node, -+ NULL); -+ -+ tree_view->priv->highlighted_tree = NULL; -+ tree_view->priv->highlighted_node = NULL; -+ } -+} -+ -+static void - update_prelight (GtkTreeView *tree_view, - gint x, - gint y) -@@ -3780,13 +4330,6 @@ - - gtk_tree_path_free (tmp_path); - -- /* ... and the cursor to the end path */ -- tmp_path = _gtk_tree_view_find_path (tree_view, -- tree_view->priv->rubber_band_end_tree, -- tree_view->priv->rubber_band_end_node); -- gtk_tree_view_real_set_cursor (GTK_TREE_VIEW (tree_view), tmp_path, FALSE, FALSE); -- gtk_tree_path_free (tmp_path); -- - _gtk_tree_selection_emit_changed (tree_view->priv->selection); - } - -@@ -3868,6 +4411,8 @@ - GTK_RBNODE_UNSET_FLAG (start_node, GTK_RBNODE_IS_SELECTED); - } - -+ add_scroll_timeout (tree_view); -+ - _gtk_tree_view_queue_draw_node (tree_view, start_tree, start_node, NULL); - - node_not_selectable: -@@ -3903,6 +4448,7 @@ - { - GtkRBTree *start_tree, *end_tree; - GtkRBNode *start_node, *end_node; -+ GtkTreePath *path; - - _gtk_rbtree_find_offset (tree_view->priv->tree, MIN (tree_view->priv->press_start_y, tree_view->priv->rubber_band_y), &start_tree, &start_node); - _gtk_rbtree_find_offset (tree_view->priv->tree, MAX (tree_view->priv->press_start_y, tree_view->priv->rubber_band_y), &end_tree, &end_node); -@@ -4001,6 +4547,17 @@ - - tree_view->priv->rubber_band_end_tree = end_tree; - tree_view->priv->rubber_band_end_node = end_node; -+ -+ /* In maemo the cursor needs to follow the stylus */ -+ if (gtk_tree_view_get_path_at_pos (tree_view, -+ tree_view->priv->rubber_band_x, -+ RBTREE_Y_TO_TREE_WINDOW_Y (tree_view, tree_view->priv->rubber_band_y), -+ &path, -+ NULL, NULL, NULL)) -+ { -+ gtk_tree_view_real_set_cursor (tree_view, path, FALSE, FALSE); -+ gtk_tree_path_free (path); -+ } - } - - static void -@@ -4009,8 +4566,6 @@ - gint x, y; - GdkRectangle old_area; - GdkRectangle new_area; -- GdkRectangle common; -- GdkRegion *invalid_region; - - old_area.x = MIN (tree_view->priv->press_start_x, tree_view->priv->rubber_band_x); - old_area.y = MIN (tree_view->priv->press_start_y, tree_view->priv->rubber_band_y) - tree_view->priv->dy; -@@ -4027,30 +4582,6 @@ - new_area.width = ABS (x - tree_view->priv->press_start_x) + 1; - new_area.height = ABS (y - tree_view->priv->press_start_y) + 1; - -- invalid_region = gdk_region_rectangle (&old_area); -- gdk_region_union_with_rect (invalid_region, &new_area); -- -- gdk_rectangle_intersect (&old_area, &new_area, &common); -- if (common.width > 2 && common.height > 2) -- { -- GdkRegion *common_region; -- -- /* make sure the border is invalidated */ -- common.x += 1; -- common.y += 1; -- common.width -= 2; -- common.height -= 2; -- -- common_region = gdk_region_rectangle (&common); -- -- gdk_region_subtract (invalid_region, common_region); -- gdk_region_destroy (common_region); -- } -- -- gdk_window_invalidate_region (tree_view->priv->bin_window, invalid_region, TRUE); -- -- gdk_region_destroy (invalid_region); -- - tree_view->priv->rubber_band_x = x; - tree_view->priv->rubber_band_y = y; - -@@ -4115,6 +4646,20 @@ - - if (tree_view->priv->rubber_band_status == RUBBER_BAND_MAYBE_START) - { -+ if (tree_view->priv->hildon_mode == HILDON_DIABLO -+ && gtk_tree_row_reference_valid (tree_view->priv->queued_select_row)) -+ { -+ GtkTreePath *path; -+ -+ /* We now know we won't rubber band -- select the row */ -+ path = gtk_tree_row_reference_get_path (tree_view->priv->queued_select_row); -+ gtk_tree_view_real_set_cursor (tree_view, path, FALSE, FALSE); -+ -+ gtk_tree_path_free (path); -+ } -+ -+ free_queued_actions (tree_view); -+ - gtk_grab_add (GTK_WIDGET (tree_view)); - gtk_tree_view_update_rubber_band (tree_view); - -@@ -4127,8 +4672,27 @@ - add_scroll_timeout (tree_view); - } - -+ /* If the drag-threshold has been passed, the row should -+ * not be activated or selected and the highlight removed. -+ */ -+ if (tree_view->priv->hildon_mode == HILDON_FREMANTLE -+ && gtk_drag_check_threshold (widget, -+ tree_view->priv->press_start_x, -+ tree_view->priv->press_start_y, -+ event->x, event->y)) -+ { -+ if (tree_view->priv->hildon_ui_mode == HILDON_UI_MODE_NORMAL) -+ free_queued_activate_row (tree_view); -+ else if (tree_view->priv->hildon_ui_mode == HILDON_UI_MODE_EDIT) -+ free_queued_select_row (tree_view); -+ -+ gtk_tree_row_reference_free (tree_view->priv->queued_tapped_row); -+ tree_view->priv->queued_tapped_row = NULL; -+ } -+ - /* only check for an initiated drag when a button is pressed */ - if (tree_view->priv->pressed_button >= 0 -+ && tree_view->priv->hildon_mode == HILDON_DIABLO - && !tree_view->priv->rubber_band_status) - gtk_tree_view_maybe_begin_dragging_row (tree_view, event); - -@@ -4310,6 +4874,46 @@ - } - } - -+static void -+gtk_tree_view_draw_row_header (GtkTreeView *tree_view, -+ GtkTreeIter *iter, -+ GdkEventExpose *event, -+ GdkRectangle *cell_area) -+{ -+ gchar *label = NULL; -+ int width, height; -+ gboolean is_header; -+ GtkWidget *widget = GTK_WIDGET (tree_view); -+ -+ g_return_if_fail (tree_view->priv->row_header_func != NULL); -+ -+ is_header = (* tree_view->priv->row_header_func) (tree_view->priv->model, -+ iter, -+ &label, -+ tree_view->priv->row_header_data); -+ -+ g_return_if_fail (is_header == TRUE); -+ g_return_if_fail (tree_view->priv->row_header_layout != NULL); -+ -+ pango_layout_set_text (tree_view->priv->row_header_layout, -+ label, strlen (label)); -+ pango_layout_get_pixel_size (tree_view->priv->row_header_layout, -+ &width, &height); -+ -+ gtk_paint_layout (widget->style, -+ event->window, -+ widget->state, -+ TRUE, -+ &event->area, -+ widget, -+ "treeview-group-header", -+ cell_area->x + (cell_area->width - width) / 2, -+ cell_area->y + cell_area->height - height, -+ tree_view->priv->row_header_layout); -+ -+ g_free (label); -+} -+ - /* Warning: Very scary function. - * Modify at your own risk - * -@@ -4356,6 +4960,8 @@ - gboolean got_pointer = FALSE; - gboolean row_ending_details; - gboolean draw_vgrid_lines, draw_hgrid_lines; -+ gint expose_start; -+ gboolean render_checkboxes = FALSE; - - rtl = (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL); - -@@ -4379,11 +4985,27 @@ - - validate_visible_area (tree_view); - -- new_y = TREE_WINDOW_Y_TO_RBTREE_Y (tree_view, event->area.y); -+ if (G_UNLIKELY (tree_view->priv->rows_offset != 0) -+ && tree_view->priv->dy <= tree_view->priv->rows_offset -+ && event->area.y <= tree_view->priv->rows_offset - tree_view->priv->dy) -+ { -+ /* As long as a part of the button window is visible ... */ -+ expose_start = tree_view->priv->rows_offset - tree_view->priv->dy; -+ y_offset = -_gtk_rbtree_find_offset (tree_view->priv->tree, -+ tree_view->priv->rows_offset, -+ &tree, &node); -+ } -+ else -+ { -+ new_y = TREE_WINDOW_Y_TO_RBTREE_Y (tree_view, event->area.y); -+ -+ if (new_y < 0) -+ new_y = 0; -+ -+ expose_start = event->area.y; -+ y_offset = -_gtk_rbtree_find_offset (tree_view->priv->tree, new_y, &tree, &node); -+ } - -- if (new_y < 0) -- new_y = 0; -- y_offset = -_gtk_rbtree_find_offset (tree_view->priv->tree, new_y, &tree, &node); - bin_window_width = gdk_window_get_width (tree_view->priv->bin_window); - bin_window_height = gdk_window_get_height (tree_view->priv->bin_window); - -@@ -4395,7 +5017,7 @@ - GTK_SHADOW_NONE, - &event->area, - widget, -- "cell_even", -+ "cell_blank", - 0, tree_view->priv->height, - bin_window_width, - bin_window_height - tree_view->priv->height); -@@ -4449,6 +5071,13 @@ - n_visible_columns ++; - } - -+ if (tree_view->priv->hildon_mode == HILDON_FREMANTLE -+ && tree_view->priv->hildon_ui_mode == HILDON_UI_MODE_EDIT -+ && tree_view->priv->selection->type == GTK_SELECTION_MULTIPLE) -+ { -+ render_checkboxes = TRUE; -+ } -+ - /* Find the last column */ - for (last_column = g_list_last (tree_view->priv->columns); - last_column && !(GTK_TREE_VIEW_COLUMN (last_column->data)->visible); -@@ -4472,8 +5101,9 @@ - gboolean is_separator = FALSE; - gboolean is_first = FALSE; - gboolean is_last = FALSE; -+ gboolean is_header = FALSE; - -- is_separator = row_is_separator (tree_view, &iter, NULL); -+ is_separator = row_is_separator (tree_view, &iter, &is_header, NULL); - - max_height = ROW_HEIGHT (tree_view, BACKGROUND_HEIGHT (node)); - -@@ -4481,7 +5111,7 @@ - highlight_x = 0; /* should match x coord of first cell */ - expander_cell_width = 0; - -- background_area.y = y_offset + event->area.y; -+ background_area.y = y_offset + expose_start; - background_area.height = max_height; - - flags = 0; -@@ -4489,7 +5119,8 @@ - if (GTK_RBNODE_FLAG_SET (node, GTK_RBNODE_IS_PRELIT)) - flags |= GTK_CELL_RENDERER_PRELIT; - -- if (GTK_RBNODE_FLAG_SET (node, GTK_RBNODE_IS_SELECTED)) -+ if (GTK_RBNODE_FLAG_SET (node, GTK_RBNODE_IS_SELECTED) -+ || node == tree_view->priv->highlighted_node) - flags |= GTK_CELL_RENDERER_SELECTED; - - parity = _gtk_rbtree_node_find_parity (tree, node); -@@ -4503,12 +5134,13 @@ - list = (rtl ? list->prev : list->next)) - { - GtkTreeViewColumn *column = list->data; -- gtk_tree_view_column_cell_set_cell_data (column, -- tree_view->priv->model, -- &iter, -- GTK_RBNODE_FLAG_SET (node, GTK_RBNODE_IS_PARENT), -- node->children?TRUE:FALSE); -- } -+ gtk_tree_view_column_cell_set_cell_data_with_hint (column, -+ tree_view->priv->model, -+ &iter, -+ GTK_RBNODE_FLAG_SET (node, GTK_RBNODE_IS_PARENT), -+ node->children?TRUE:FALSE, -+ GTK_TREE_CELL_DATA_HINT_KEY_FOCUS); -+ } - - has_special_cell = gtk_tree_view_has_special_cell (tree_view); - -@@ -4543,7 +5175,11 @@ - background_area.x = cell_offset; - background_area.width = column->width; - -- cell_area = background_area; -+ /* Nasty hack to get background handling for free */ -+ if (render_checkboxes && column == last_column->data) -+ background_area.width += HILDON_TICK_MARK_SIZE; -+ -+ cell_area = background_area; - cell_area.y += vertical_separator / 2; - cell_area.x += horizontal_separator / 2; - cell_area.height -= vertical_separator; -@@ -4682,6 +5318,93 @@ - background_area.height); - } - -+ /* Nasty hack to get background handling for free */ -+ if (render_checkboxes && column == last_column->data) -+ { -+ background_area.width -= HILDON_TICK_MARK_SIZE; -+ cell_area.width -= HILDON_TICK_MARK_SIZE; -+ -+ if (GTK_RBNODE_FLAG_SET (node, GTK_RBNODE_IS_SELECTED)) -+ gdk_draw_pixbuf (event->window, -+ NULL, -+ tree_view->priv->tickmark_icon, -+ 0, 0, -+ background_area.x + background_area.width, -+ background_area.y + (background_area.height - HILDON_TICK_MARK_SIZE) / 2, -+ HILDON_TICK_MARK_SIZE, -+ HILDON_TICK_MARK_SIZE, -+ GDK_RGB_DITHER_MAX, -+ 0, 0); -+ } -+ -+ if (node == drag_highlight) -+ { -+ /* Draw indicator for the drop -+ */ -+ gint highlight_y = -1; -+ GtkRBTree *tree = NULL; -+ GtkRBNode *node = NULL; -+ gint width; -+ -+ switch (tree_view->priv->drag_dest_pos) -+ { -+ case GTK_TREE_VIEW_DROP_BEFORE: -+ highlight_y = background_area.y - 1; -+ if (highlight_y < 0) -+ highlight_y = 0; -+ break; -+ -+ case GTK_TREE_VIEW_DROP_AFTER: -+ highlight_y = background_area.y + background_area.height - 1; -+ break; -+ -+ case GTK_TREE_VIEW_DROP_INTO_OR_BEFORE: -+ case GTK_TREE_VIEW_DROP_INTO_OR_AFTER: -+ _gtk_tree_view_find_node (tree_view, drag_dest_path, &tree, &node); -+ -+ if (tree == NULL) -+ break; -+ gdk_drawable_get_size (tree_view->priv->bin_window, -+ &width, NULL); -+ -+ if (row_ending_details) -+ gtk_paint_focus (widget->style, -+ tree_view->priv->bin_window, -+ gtk_widget_get_state (widget), -+ &event->area, -+ widget, -+ (is_first -+ ? (is_last ? "treeview-drop-indicator" : "treeview-drop-indicator-left" ) -+ : (is_last ? "treeview-drop-indicator-right" : "tree-view-drop-indicator-middle" )), -+ 0, BACKGROUND_FIRST_PIXEL (tree_view, tree, node) -+ - focus_line_width / 2, -+ width, ROW_HEIGHT (tree_view, BACKGROUND_HEIGHT (node)) -+ - focus_line_width + 1); -+ else -+ gtk_paint_focus (widget->style, -+ tree_view->priv->bin_window, -+ gtk_widget_get_state (widget), -+ &event->area, -+ widget, -+ "treeview-drop-indicator", -+ 0, BACKGROUND_FIRST_PIXEL (tree_view, tree, node) -+ - focus_line_width / 2, -+ width, ROW_HEIGHT (tree_view, BACKGROUND_HEIGHT (node)) -+ - focus_line_width + 1); -+ break; -+ } -+ -+ if (highlight_y >= 0) -+ { -+ gdk_draw_line (event->window, -+ widget->style->fg_gc[gtk_widget_get_state (widget)], -+ rtl ? highlight_x + expander_cell_width : highlight_x, -+ highlight_y, -+ rtl ? 0 : bin_window_width, -+ highlight_y); -+ } -+ } -+ - if (gtk_tree_view_is_expander_column (tree_view, column)) - { - if (!rtl) -@@ -4702,7 +5425,14 @@ - highlight_x = cell_area.x; - expander_cell_width = cell_area.width; - -- if (is_separator) -+ if (is_header) -+ { -+ gtk_tree_view_draw_row_header (tree_view, -+ &iter, -+ event, -+ &cell_area); -+ } -+ else if (is_separator) - gtk_paint_hline (widget->style, - event->window, - state, -@@ -4737,7 +5467,14 @@ - } - else - { -- if (is_separator) -+ if (is_header) -+ { -+ gtk_tree_view_draw_row_header (tree_view, -+ &iter, -+ event, -+ &cell_area); -+ } -+ else if (is_separator) - gtk_paint_hline (widget->style, - event->window, - state, -@@ -4862,73 +5599,6 @@ - cell_offset += column->width; - } - -- if (node == drag_highlight) -- { -- /* Draw indicator for the drop -- */ -- gint highlight_y = -1; -- GtkRBTree *tree = NULL; -- GtkRBNode *node = NULL; -- gint width; -- -- switch (tree_view->priv->drag_dest_pos) -- { -- case GTK_TREE_VIEW_DROP_BEFORE: -- highlight_y = background_area.y - 1; -- if (highlight_y < 0) -- highlight_y = 0; -- break; -- -- case GTK_TREE_VIEW_DROP_AFTER: -- highlight_y = background_area.y + background_area.height - 1; -- break; -- -- case GTK_TREE_VIEW_DROP_INTO_OR_BEFORE: -- case GTK_TREE_VIEW_DROP_INTO_OR_AFTER: -- _gtk_tree_view_find_node (tree_view, drag_dest_path, &tree, &node); -- -- if (tree == NULL) -- break; -- width = gdk_window_get_width (tree_view->priv->bin_window); -- -- if (row_ending_details) -- gtk_paint_focus (widget->style, -- tree_view->priv->bin_window, -- gtk_widget_get_state (widget), -- &event->area, -- widget, -- (is_first -- ? (is_last ? "treeview-drop-indicator" : "treeview-drop-indicator-left" ) -- : (is_last ? "treeview-drop-indicator-right" : "tree-view-drop-indicator-middle" )), -- 0, BACKGROUND_FIRST_PIXEL (tree_view, tree, node) -- - focus_line_width / 2, -- width, ROW_HEIGHT (tree_view, BACKGROUND_HEIGHT (node)) -- - focus_line_width + 1); -- else -- gtk_paint_focus (widget->style, -- tree_view->priv->bin_window, -- gtk_widget_get_state (widget), -- &event->area, -- widget, -- "treeview-drop-indicator", -- 0, BACKGROUND_FIRST_PIXEL (tree_view, tree, node) -- - focus_line_width / 2, -- width, ROW_HEIGHT (tree_view, BACKGROUND_HEIGHT (node)) -- - focus_line_width + 1); -- break; -- } -- -- if (highlight_y >= 0) -- { -- gtk_tree_view_draw_line (tree_view, event->window, -- GTK_TREE_VIEW_FOREGROUND_LINE, -- rtl ? highlight_x + expander_cell_width : highlight_x, -- highlight_y, -- rtl ? 0 : bin_window_width, -- highlight_y); -- } -- } -- - /* draw the big row-spanning focus rectangle, if needed */ - if (!has_special_cell && node == cursor && - GTK_TREE_VIEW_FLAG_SET (tree_view, GTK_TREE_VIEW_DRAW_KEYFOCUS) && -@@ -5042,21 +5712,6 @@ - done: - gtk_tree_view_draw_grid_lines (tree_view, event, n_visible_columns); - -- if (tree_view->priv->rubber_band_status == RUBBER_BAND_ACTIVE) -- { -- GdkRectangle *rectangles; -- gint n_rectangles; -- -- gdk_region_get_rectangles (event->region, -- &rectangles, -- &n_rectangles); -- -- while (n_rectangles--) -- gtk_tree_view_paint_rubber_band (tree_view, &rectangles[n_rectangles]); -- -- g_free (rectangles); -- } -- - if (cursor_path) - gtk_tree_path_free (cursor_path); - -@@ -5504,6 +6159,15 @@ - * the typeahead find capabilities. */ - if (gtk_widget_has_focus (GTK_WIDGET (tree_view)) - && tree_view->priv->enable_search -+ /* These are usually handled via keybindings, but these do not -+ * function in Fremantle mode. Therefore we need to explicitly -+ * check for these there. -+ */ -+ && event->keyval != GDK_ISO_Enter -+ && event->keyval != GDK_KP_Enter -+ && event->keyval != GDK_Return -+ && event->keyval != GDK_space -+ && event->keyval != GDK_KP_Space - && !tree_view->priv->search_custom_entry_set) - { - GdkEvent *new_event; -@@ -5730,13 +6394,15 @@ - gint grid_line_width; - gboolean wide_separators; - gint separator_height; -+ gint row_height; -+ gboolean is_header = FALSE; - - /* double check the row needs validating */ - if (! GTK_RBNODE_FLAG_SET (node, GTK_RBNODE_INVALID) && - ! GTK_RBNODE_FLAG_SET (node, GTK_RBNODE_COLUMN_INVALID)) - return FALSE; - -- is_separator = row_is_separator (tree_view, iter, NULL); -+ is_separator = row_is_separator (tree_view, iter, &is_header, NULL); - - gtk_widget_style_get (GTK_WIDGET (tree_view), - "focus-padding", &focus_pad, -@@ -5746,6 +6412,7 @@ - "grid-line-width", &grid_line_width, - "wide-separators", &wide_separators, - "separator-height", &separator_height, -+ "row-height", &row_height, - NULL); - - draw_vgrid_lines = -@@ -5793,10 +6460,12 @@ - } - else - { -- if (wide_separators) -- height = separator_height + 2 * focus_pad; -- else -- height = 2 + 2 * focus_pad; -+ if (is_header) -+ { -+ height = HILDON_ROW_HEADER_HEIGHT; -+ } -+ else -+ height = separator_height + 2 * focus_pad; - } - - if (gtk_tree_view_is_expander_column (tree_view, column)) -@@ -5817,6 +6486,14 @@ - tmp_width += grid_line_width; - } - -+ if (tree_view->priv->hildon_mode == HILDON_FREMANTLE -+ && tree_view->priv->hildon_ui_mode == HILDON_UI_MODE_EDIT -+ && tree_view->priv->selection->type == GTK_SELECTION_MULTIPLE) -+ { -+ tmp_width += HILDON_TICK_MARK_SIZE; -+ height = MAX (height, HILDON_TICK_MARK_SIZE); -+ } -+ - if (tmp_width > column->requested_width) - { - retval = TRUE; -@@ -5827,6 +6504,9 @@ - if (draw_hgrid_lines) - height += grid_line_width; - -+ if (row_height != -1 && !is_separator && !is_header) -+ height = row_height; -+ - if (height != GTK_RBNODE_GET_HEIGHT (node)) - { - retval = TRUE; -@@ -6180,33 +6860,166 @@ - { - GtkRequisition requisition; - -- /* We temporarily guess a size, under the assumption that it will be the -- * same when we get our next size_allocate. If we don't do this, we'll be -- * in an inconsistent state if we call top_row_to_dy. */ -+ /* We temporarily guess a size, under the assumption that it will be the -+ * same when we get our next size_allocate. If we don't do this, we'll be -+ * in an inconsistent state if we call top_row_to_dy. */ -+ -+ gtk_widget_size_request (GTK_WIDGET (tree_view), &requisition); -+ tree_view->priv->hadjustment->upper = MAX (tree_view->priv->hadjustment->upper, (gfloat)requisition.width); -+ tree_view->priv->vadjustment->upper = MAX (tree_view->priv->vadjustment->upper, (gfloat)requisition.height); -+ gtk_adjustment_changed (tree_view->priv->hadjustment); -+ gtk_adjustment_changed (tree_view->priv->vadjustment); -+ gtk_widget_queue_resize (GTK_WIDGET (tree_view)); -+ } -+ -+ if (tree_view->priv->scroll_to_path) -+ { -+ gtk_tree_row_reference_free (tree_view->priv->scroll_to_path); -+ tree_view->priv->scroll_to_path = NULL; -+ } -+ -+ if (above_path) -+ gtk_tree_path_free (above_path); -+ -+ if (tree_view->priv->scroll_to_column) -+ { -+ tree_view->priv->scroll_to_column = NULL; -+ } -+ if (need_redraw) -+ gtk_widget_queue_draw (GTK_WIDGET (tree_view)); -+} -+ -+/* You can pass in focus_pad, separator_height to save -+ * calls to gtk_widget_style_get() (especially for -+ * gtk_tree_view_nodes_set_fixed_height). -+ */ -+static inline int -+determine_row_height (GtkTreeView *tree_view, -+ GtkTreeIter *iter, -+ int focus_pad, -+ int separator_height) -+{ -+ int height; -+ gboolean is_separator, is_header = FALSE; -+ -+ /* Determine the correct height for this node. This is -+ * analogous to what is found in validate_row(). -+ */ -+ is_separator = row_is_separator (tree_view, iter, &is_header, NULL); -+ -+ if (!is_separator) -+ height = tree_view->priv->fixed_height; -+ else if (is_header) -+ height = HILDON_ROW_HEADER_HEIGHT; -+ else -+ { -+ if (focus_pad == -1 || separator_height == -1) -+ gtk_widget_style_get (GTK_WIDGET (tree_view), -+ "focus-padding", &focus_pad, -+ "separator-height", &separator_height, -+ NULL); -+ -+ height = separator_height + 2 * focus_pad; -+ } -+ -+ return height; -+} -+ -+/* This function is basically an extended and non-recursive version of -+ * _gtk_rbtree_set_fixed_height() which also keeps track of the current -+ * iter. We can then pass this iter in to the row separator and -+ * row header funcs. -+ */ -+static void -+gtk_tree_view_nodes_set_fixed_height (GtkTreeView *tree_view) -+{ -+ int focus_pad; -+ int separator_height; -+ GtkRBTree *tree; -+ GtkRBNode *node; -+ GtkTreeIter iter; -+ -+ tree = tree_view->priv->tree; -+ -+ if (tree == NULL) -+ return; -+ -+ node = tree->root; -+ g_assert (node); -+ -+ /* Rewind tree, we start at the first node */ -+ while (node->left != tree->nil) -+ node = node->left; -+ -+ gtk_tree_model_get_iter_first (tree_view->priv->model, &iter); -+ -+ gtk_widget_style_get (GTK_WIDGET (tree_view), -+ "focus-padding", &focus_pad, -+ "separator-height", &separator_height, -+ NULL); -+ -+ /* This loop is equivalent to the one in bin_expose, but with -+ * the extra assertions removed. -+ */ -+ do -+ { -+ if (GTK_RBNODE_FLAG_SET (node, GTK_RBNODE_INVALID)) -+ { -+ int height; -+ -+ height = determine_row_height (tree_view, &iter, -+ focus_pad, separator_height); -+ -+ _gtk_rbtree_node_set_height (tree, node, height); -+ _gtk_rbtree_node_mark_valid (tree, node); -+ } -+ -+ if (node->children) -+ { -+ GtkTreeIter parent = iter; -+ -+ tree = node->children; -+ node = tree->root; -+ -+ g_assert (node != tree->nil); - -- gtk_widget_size_request (GTK_WIDGET (tree_view), &requisition); -- tree_view->priv->hadjustment->upper = MAX (tree_view->priv->hadjustment->upper, (gfloat)requisition.width); -- tree_view->priv->vadjustment->upper = MAX (tree_view->priv->vadjustment->upper, (gfloat)requisition.height); -- gtk_adjustment_changed (tree_view->priv->hadjustment); -- gtk_adjustment_changed (tree_view->priv->vadjustment); -- gtk_widget_queue_resize (GTK_WIDGET (tree_view)); -- } -+ while (node->left != tree->nil) -+ node = node->left; - -- if (tree_view->priv->scroll_to_path) -- { -- gtk_tree_row_reference_free (tree_view->priv->scroll_to_path); -- tree_view->priv->scroll_to_path = NULL; -- } -+ gtk_tree_model_iter_children (tree_view->priv->model, -+ &iter, &parent); -+ } -+ else -+ { -+ gboolean done = FALSE; - -- if (above_path) -- gtk_tree_path_free (above_path); -+ do -+ { -+ node = _gtk_rbtree_next (tree, node); -+ if (node != NULL) -+ { -+ gtk_tree_model_iter_next (tree_view->priv->model, &iter); -+ done = TRUE; -+ } -+ else -+ { -+ GtkTreeIter parent_iter = iter; - -- if (tree_view->priv->scroll_to_column) -- { -- tree_view->priv->scroll_to_column = NULL; -+ node = tree->parent_node; -+ tree = tree->parent_tree; -+ -+ if (!tree) -+ /* We are done */ -+ return; -+ -+ gtk_tree_model_iter_parent (tree_view->priv->model, -+ &iter, &parent_iter); -+ } -+ } -+ while (!done); -+ } - } -- if (need_redraw) -- gtk_widget_queue_draw (GTK_WIDGET (tree_view)); -+ while (TRUE); - } - - static void -@@ -6227,6 +7040,29 @@ - node = tree->root; - - path = _gtk_tree_view_find_path (tree_view, tree, node); -+ -+ /* Search for the first regular row */ -+ while (node) -+ { -+ gboolean is_header = FALSE, is_separator; -+ -+ is_separator = row_is_separator (tree_view, NULL, &is_header, path); -+ if (!is_separator && !is_header) -+ break; -+ -+ _gtk_rbtree_next_full (tree, node, &tree, &node); -+ -+ gtk_tree_path_free (path); -+ -+ if (node) -+ path = _gtk_tree_view_find_path (tree_view, tree, node); -+ else -+ path = NULL; -+ } -+ -+ if (!path) -+ return; -+ - gtk_tree_model_get_iter (tree_view->priv->model, &iter, path); - - validate_row (tree_view, tree, node, &iter, path); -@@ -6236,8 +7072,16 @@ - tree_view->priv->fixed_height = ROW_HEIGHT (tree_view, GTK_RBNODE_GET_HEIGHT (node)); - } - -- _gtk_rbtree_set_fixed_height (tree_view->priv->tree, -- tree_view->priv->fixed_height, TRUE); -+ /* If a separator or row header func has been set, we cannot -+ * uniformly set the same height on all rows. We fall back to -+ * a slower alternative. -+ */ -+ if (tree_view->priv->row_separator_func -+ || tree_view->priv->row_header_func) -+ gtk_tree_view_nodes_set_fixed_height (tree_view); -+ else -+ _gtk_rbtree_set_fixed_height (tree_view->priv->tree, -+ tree_view->priv->fixed_height, TRUE); - } - - /* Our strategy for finding nodes to validate is a little convoluted. We find -@@ -7206,6 +8050,9 @@ - - set_source_row (context, model, path); - -+ /* Clear pending actions on row */ -+ free_queued_actions (tree_view); -+ - out: - if (path) - gtk_tree_path_free (path); -@@ -7708,12 +8555,20 @@ - gtk_tree_view_has_special_cell (GtkTreeView *tree_view) - { - GList *list; -+ guint n_specials = 0; - - for (list = tree_view->priv->columns; list; list = list->next) - { - if (!((GtkTreeViewColumn *)list->data)->visible) - continue; -- if (_gtk_tree_view_column_count_special_cells (list->data)) -+ /* We return true if there is more than one special cell. Since -+ * we do not want to have the per-cell focus rectangles when there -+ * is only a single activatable cell, we return FALSE for -+ * n_specials == 1 -+ */ -+ n_specials += _gtk_tree_view_column_count_special_cells (list->data); -+ -+ if (n_specials > 1) - return TRUE; - } - -@@ -7813,148 +8668,11 @@ - GtkDirectionType dir, - gboolean clamp_column_visible) - { -- GtkWidget *focus_child; -- -- GList *last_column, *first_column; -- GList *tmp_list; -- gboolean rtl; -- -- if (! GTK_TREE_VIEW_FLAG_SET (tree_view, GTK_TREE_VIEW_HEADERS_VISIBLE)) -- return FALSE; -- -- focus_child = GTK_CONTAINER (tree_view)->focus_child; -- -- first_column = tree_view->priv->columns; -- while (first_column) -- { -- if (gtk_widget_get_can_focus (GTK_TREE_VIEW_COLUMN (first_column->data)->button) && -- GTK_TREE_VIEW_COLUMN (first_column->data)->visible && -- (GTK_TREE_VIEW_COLUMN (first_column->data)->clickable || -- GTK_TREE_VIEW_COLUMN (first_column->data)->reorderable)) -- break; -- first_column = first_column->next; -- } -- -- /* No headers are visible, or are focusable. We can't focus in or out. -- */ -- if (first_column == NULL) -- return FALSE; -- -- last_column = g_list_last (tree_view->priv->columns); -- while (last_column) -- { -- if (gtk_widget_get_can_focus (GTK_TREE_VIEW_COLUMN (last_column->data)->button) && -- GTK_TREE_VIEW_COLUMN (last_column->data)->visible && -- (GTK_TREE_VIEW_COLUMN (last_column->data)->clickable || -- GTK_TREE_VIEW_COLUMN (last_column->data)->reorderable)) -- break; -- last_column = last_column->prev; -- } -- -- -- rtl = (gtk_widget_get_direction (GTK_WIDGET (tree_view)) == GTK_TEXT_DIR_RTL); -- -- switch (dir) -- { -- case GTK_DIR_TAB_BACKWARD: -- case GTK_DIR_TAB_FORWARD: -- case GTK_DIR_UP: -- case GTK_DIR_DOWN: -- if (focus_child == NULL) -- { -- if (tree_view->priv->focus_column != NULL && -- gtk_widget_get_can_focus (tree_view->priv->focus_column->button)) -- focus_child = tree_view->priv->focus_column->button; -- else -- focus_child = GTK_TREE_VIEW_COLUMN (first_column->data)->button; -- gtk_widget_grab_focus (focus_child); -- break; -- } -- return FALSE; -- -- case GTK_DIR_LEFT: -- case GTK_DIR_RIGHT: -- if (focus_child == NULL) -- { -- if (tree_view->priv->focus_column != NULL) -- focus_child = tree_view->priv->focus_column->button; -- else if (dir == GTK_DIR_LEFT) -- focus_child = GTK_TREE_VIEW_COLUMN (last_column->data)->button; -- else -- focus_child = GTK_TREE_VIEW_COLUMN (first_column->data)->button; -- gtk_widget_grab_focus (focus_child); -- break; -- } -- -- if (gtk_widget_child_focus (focus_child, dir)) -- { -- /* The focus moves inside the button. */ -- /* This is probably a great example of bad UI */ -- break; -- } -- -- /* We need to move the focus among the row of buttons. */ -- for (tmp_list = tree_view->priv->columns; tmp_list; tmp_list = tmp_list->next) -- if (GTK_TREE_VIEW_COLUMN (tmp_list->data)->button == focus_child) -- break; -- -- if ((tmp_list == first_column && dir == (rtl ? GTK_DIR_RIGHT : GTK_DIR_LEFT)) -- || (tmp_list == last_column && dir == (rtl ? GTK_DIR_LEFT : GTK_DIR_RIGHT))) -- { -- gtk_widget_error_bell (GTK_WIDGET (tree_view)); -- break; -- } -- -- while (tmp_list) -- { -- GtkTreeViewColumn *column; -- -- if (dir == (rtl ? GTK_DIR_LEFT : GTK_DIR_RIGHT)) -- tmp_list = tmp_list->next; -- else -- tmp_list = tmp_list->prev; -- -- if (tmp_list == NULL) -- { -- g_warning ("Internal button not found"); -- break; -- } -- column = tmp_list->data; -- if (column->button && -- column->visible && -- gtk_widget_get_can_focus (column->button)) -- { -- focus_child = column->button; -- gtk_widget_grab_focus (column->button); -- break; -- } -- } -- break; -- default: -- g_assert_not_reached (); -- break; -- } -- -- /* if focus child is non-null, we assume it's been set to the current focus child -+ /* Skip headers when acquiring focus; behave the same as the headers -+ * are invisible. - */ -- if (focus_child) -- { -- for (tmp_list = tree_view->priv->columns; tmp_list; tmp_list = tmp_list->next) -- if (GTK_TREE_VIEW_COLUMN (tmp_list->data)->button == focus_child) -- { -- tree_view->priv->focus_column = GTK_TREE_VIEW_COLUMN (tmp_list->data); -- break; -- } -- -- if (clamp_column_visible) -- { -- gtk_tree_view_clamp_column_visible (tree_view, -- tree_view->priv->focus_column, -- FALSE); -- } -- } - -- return (focus_child != NULL); -+ return FALSE; - } - - /* This function returns in 'path' the first focusable path, if the given path -@@ -7978,7 +8696,9 @@ - if (!tree || !node) - return FALSE; - -- while (node && row_is_separator (tree_view, NULL, *path)) -+ while (node && -+ !_gtk_tree_selection_row_is_selectable (tree_view->priv->selection, -+ node, *path)) - { - if (search_forward) - _gtk_rbtree_next_full (tree, node, &tree, &node); -@@ -8097,6 +8817,31 @@ - tree_view->priv->fixed_height = -1; - _gtk_rbtree_mark_invalid (tree_view->priv->tree); - -+ /* Cache the hildon-mode because it is slow to call gtk_widget_style_get -+ * too much. */ -+ gtk_widget_style_get (GTK_WIDGET (tree_view), -+ "hildon-mode", &tree_view->priv->hildon_mode, -+ NULL); -+ -+ /* Reset the UI mode */ -+ hildon_tree_view_set_hildon_ui_mode (tree_view, -+ tree_view->priv->hildon_ui_mode); -+ -+ if (tree_view->priv->row_header_layout) -+ hildon_tree_view_setup_row_header_layout (tree_view); -+ -+ if (tree_view->priv->tickmark_icon) -+ g_object_unref (tree_view->priv->tickmark_icon); -+ -+ tree_view->priv->tickmark_icon = -+ gtk_icon_theme_load_icon (gtk_icon_theme_get_default (), -+ "widgets_tickmark_list", -+ HILDON_TICK_MARK_SIZE, -+ 0, NULL); -+ -+ if (tree_view->priv->action_area_visible) -+ hildon_tree_view_set_action_area_height (tree_view); -+ - gtk_widget_queue_resize (widget); - } - -@@ -8354,10 +9099,39 @@ - if (tree == NULL) - goto done; - -+ /* Unselect the row if it just became insensitive */ -+ if (!_gtk_tree_selection_row_is_selectable (tree_view->priv->selection, -+ node, path) -+ && gtk_tree_row_reference_valid (tree_view->priv->cursor)) -+ { -+ GtkTreePath *cursor_path; -+ -+ cursor_path = gtk_tree_row_reference_get_path (tree_view->priv->cursor); -+ if (! gtk_tree_path_compare (path, cursor_path)) -+ { -+ gtk_tree_row_reference_free (tree_view->priv->cursor); -+ tree_view->priv->cursor = NULL; -+ } -+ -+ gtk_tree_selection_unselect_path (tree_view->priv->selection, path); -+ -+ gtk_tree_path_free (cursor_path); -+ } -+ - if (tree_view->priv->fixed_height_mode - && tree_view->priv->fixed_height >= 0) - { -- _gtk_rbtree_node_set_height (tree, node, tree_view->priv->fixed_height); -+ if (tree_view->priv->row_separator_func -+ || tree_view->priv->row_header_func) -+ { -+ int height; -+ -+ height = determine_row_height (tree_view, iter, -1, -1); -+ _gtk_rbtree_node_set_height (tree, node, height); -+ } -+ else -+ _gtk_rbtree_node_set_height (tree, node, tree_view->priv->fixed_height); -+ - if (gtk_widget_get_realized (GTK_WIDGET (tree_view))) - gtk_tree_view_node_queue_redraw (tree_view, tree, node); - } -@@ -8407,7 +9181,13 @@ - - if (tree_view->priv->fixed_height_mode - && tree_view->priv->fixed_height >= 0) -- height = tree_view->priv->fixed_height; -+ { -+ if (tree_view->priv->row_separator_func -+ || tree_view->priv->row_header_func) -+ height = determine_row_height (tree_view, iter, -1, -1); -+ else -+ height = tree_view->priv->fixed_height; -+ } - else - height = 0; - -@@ -8420,7 +9200,13 @@ - gtk_tree_model_get_iter (model, iter, path); - - if (tree_view->priv->tree == NULL) -- tree_view->priv->tree = _gtk_rbtree_new (); -+ { -+ tree_view->priv->tree = _gtk_rbtree_new (); -+ -+ if (G_UNLIKELY (tree_view->priv->rows_offset != 0)) -+ _gtk_rbtree_set_base_offset (tree_view->priv->tree, -+ tree_view->priv->rows_offset); -+ } - - tmptree = tree = tree_view->priv->tree; - -@@ -8485,6 +9271,23 @@ - tmpnode = _gtk_rbtree_insert_after (tree, tmpnode, height, FALSE); - } - -+ /* If this was the first node inserted in the tree, we want to -+ * select it. -+ */ -+ if (tree_view->priv->hildon_mode == HILDON_FREMANTLE -+ && tree_view->priv->hildon_ui_mode == HILDON_UI_MODE_EDIT -+ && tree_view->priv->selection->type != GTK_SELECTION_MULTIPLE -+ && gtk_tree_selection_count_selected_rows (tree_view->priv->selection) < 1) -+ { -+ GtkTreePath *tmppath; -+ -+ tmppath = gtk_tree_path_new_first (); -+ search_first_focusable_path (tree_view, &tmppath, -+ TRUE, NULL, NULL); -+ gtk_tree_selection_select_path (tree_view->priv->selection, tmppath); -+ gtk_tree_path_free (tmppath); -+ } -+ - done: - if (height > 0) - { -@@ -8631,6 +9434,8 @@ - - /* Ensure we don't have a dangling pointer to a dead node */ - ensure_unprelighted (tree_view); -+ free_queued_actions (tree_view); -+ ensure_unhighlighted (tree_view); - - /* Cancel editting if we've started */ - gtk_tree_view_stop_editing (tree_view, TRUE); -@@ -8638,6 +9443,12 @@ - /* If we have a node expanded/collapsed timeout, remove it */ - remove_expand_collapse_timeout (tree_view); - -+ /* Stop rubber banding as row deletion invalidates the start/end -+ * rbtree/nodes. Should consider updating the pointers instead. -+ */ -+ if (tree_view->priv->rubber_band_status) -+ gtk_tree_view_stop_rubber_band (tree_view); -+ - if (tree_view->priv->destroy_count_func) - { - gint child_count = 0; -@@ -8666,6 +9477,24 @@ - - install_scroll_sync_handler (tree_view); - -+ if (selection_changed -+ && tree_view->priv->hildon_mode == HILDON_FREMANTLE -+ && tree_view->priv->hildon_ui_mode == HILDON_UI_MODE_EDIT -+ && tree_view->priv->selection->type != GTK_SELECTION_MULTIPLE -+ && gtk_tree_selection_count_selected_rows (tree_view->priv->selection) < 1) -+ { -+ GtkTreePath *tmppath; -+ -+ /* One item must be selected, now there is none. If iter_first -+ * does not exist, the view is empty. -+ */ -+ tmppath = gtk_tree_path_new_first (); -+ search_first_focusable_path (tree_view, &tmppath, -+ TRUE, NULL, NULL); -+ gtk_tree_selection_select_path (tree_view->priv->selection, tmppath); -+ gtk_tree_path_free (tmppath); -+ } -+ - gtk_widget_queue_resize (GTK_WIDGET (tree_view)); - - if (selection_changed) -@@ -8714,6 +9543,8 @@ - - /* we need to be unprelighted */ - ensure_unprelighted (tree_view); -+ free_queued_actions (tree_view); -+ ensure_unhighlighted (tree_view); - - /* clear the timeout */ - cancel_arrow_animation (tree_view); -@@ -9590,6 +10421,9 @@ - { - GtkTreePath *cursor_path; - -+ if (tree_view->priv->hildon_mode == HILDON_FREMANTLE) -+ return; -+ - if ((tree_view->priv->tree == NULL) || - (! gtk_widget_get_realized (GTK_WIDGET (tree_view)))) - return; -@@ -9628,8 +10462,11 @@ - - if (cursor_path) - { -- if (tree_view->priv->selection->type == GTK_SELECTION_MULTIPLE) -- gtk_tree_view_real_set_cursor (tree_view, cursor_path, FALSE, FALSE); -+ if ((tree_view->priv->selection->type == GTK_SELECTION_MULTIPLE) -+ && tree_view->priv->hildon_mode == HILDON_DIABLO) -+ { -+ gtk_tree_view_real_set_cursor (tree_view, cursor_path, FALSE, FALSE); -+ } - else - gtk_tree_view_real_set_cursor (tree_view, cursor_path, TRUE, FALSE); - } -@@ -9833,6 +10670,8 @@ - - if (y >= tree_view->priv->height) - y = tree_view->priv->height - 1; -+ else if (tree_view->priv->rows_offset != 0 && y < tree_view->priv->rows_offset) -+ y = tree_view->priv->rows_offset; - - tree_view->priv->cursor_offset = - _gtk_rbtree_find_offset (tree_view->priv->tree, y, -@@ -9942,11 +10781,12 @@ - if (column->visible == FALSE) - goto loop_end; - -- gtk_tree_view_column_cell_set_cell_data (column, -- tree_view->priv->model, -- &iter, -- GTK_RBNODE_FLAG_SET (cursor_node, GTK_RBNODE_IS_PARENT), -- cursor_node->children?TRUE:FALSE); -+ gtk_tree_view_column_cell_set_cell_data_with_hint (column, -+ tree_view->priv->model, -+ &iter, -+ GTK_RBNODE_FLAG_SET (cursor_node, GTK_RBNODE_IS_PARENT), -+ cursor_node->children?TRUE:FALSE, -+ GTK_TREE_CELL_DATA_HINT_KEY_FOCUS); - - if (rtl) - { -@@ -10007,6 +10847,12 @@ - - gtk_tree_view_get_cursor (tree_view, &old_path, NULL); - -+ /* Immediately return when there is no cursor. (Like all other -+ * cursor movement handlers -- should prolly go upstream). -+ */ -+ if (!old_path) -+ return; -+ - cursor_tree = tree_view->priv->tree; - cursor_node = cursor_tree->root; - -@@ -10115,6 +10961,54 @@ - return FALSE; - } - -+ if (start_editing) -+ { -+ GList *list; -+ gboolean rtl; -+ GtkTreeIter iter; -+ -+ /* In case we have only one activatable cell in the tree view, we have -+ * a special case. We will have to set the cell data on the cursor -+ * row in order to figure out. -+ */ -+ gtk_tree_model_get_iter (tree_view->priv->model, &iter, cursor_path); -+ rtl = (gtk_widget_get_direction (GTK_WIDGET (tree_view)) == GTK_TEXT_DIR_RTL); -+ -+ for (list = (rtl ? g_list_last (tree_view->priv->columns) : g_list_first (tree_view->priv->columns)); -+ list; -+ list = (rtl ? list->prev : list->next)) -+ { -+ GtkTreeViewColumn *column = list->data; -+ gtk_tree_view_column_cell_set_cell_data_with_hint (column, -+ tree_view->priv->model, -+ &iter, -+ GTK_RBNODE_FLAG_SET (cursor_node, GTK_RBNODE_IS_PARENT), -+ cursor_node->children?TRUE:FALSE, -+ GTK_TREE_CELL_DATA_HINT_KEY_FOCUS); -+ } -+ -+ if (!gtk_tree_view_has_special_cell (tree_view)) -+ { -+ /* We now set focus_column to the first column with an activatable -+ * cell that we can find. This is either none, or the one with -+ * the only activatable cell that is around. -+ */ -+ for (list = (rtl ? g_list_last (tree_view->priv->columns) : g_list_first (tree_view->priv->columns)); -+ list; -+ list = (rtl ? list->prev : list->next)) -+ { -+ GtkTreeViewColumn *column = list->data; -+ -+ if (column->visible -+ && _gtk_tree_view_column_count_special_cells (column)) -+ { -+ tree_view->priv->focus_column = column; -+ break; -+ } -+ } -+ } -+ } -+ - if (!tree_view->priv->extend_selection_pressed && start_editing && - tree_view->priv->focus_column) - { -@@ -10235,18 +11129,40 @@ - if (_gtk_tree_view_find_node (tree_view, cursor_path, &tree, &node)) - return FALSE; - -- /* Don't handle the event if we aren't an expander */ -- if (!((node->flags & GTK_RBNODE_IS_PARENT) == GTK_RBNODE_IS_PARENT)) -- return FALSE; -- - if (!logical - && gtk_widget_get_direction (GTK_WIDGET (tree_view)) == GTK_TEXT_DIR_RTL) - expand = !expand; - - if (expand) -- gtk_tree_view_real_expand_row (tree_view, cursor_path, tree, node, open_all, TRUE); -+ { -+ gboolean expanded; -+ -+ expanded = gtk_tree_view_real_expand_row (tree_view, cursor_path, -+ tree, node, open_all, TRUE); -+ if (!expanded -+ && !gtk_widget_keynav_failed (GTK_WIDGET (tree_view), GTK_DIR_RIGHT)) -+ { -+ GtkWidget *toplevel = gtk_widget_get_toplevel (GTK_WIDGET (tree_view)); -+ if (toplevel) -+ gtk_widget_child_focus (toplevel, GTK_DIR_TAB_FORWARD); -+ } -+ } - else -- gtk_tree_view_real_collapse_row (tree_view, cursor_path, tree, node, TRUE); -+ { -+ gboolean collapsed; -+ -+ collapsed = gtk_tree_view_real_collapse_row (tree_view, cursor_path, -+ tree, node, TRUE); -+ if (!collapsed -+ && !gtk_widget_keynav_failed (GTK_WIDGET (tree_view), GTK_DIR_LEFT)) -+ { -+ GtkWidget *toplevel = gtk_widget_get_toplevel (GTK_WIDGET (tree_view)); -+ if (toplevel) -+ gtk_widget_child_focus (toplevel, GTK_DIR_TAB_BACKWARD); -+ -+ gtk_tree_view_real_select_cursor_parent (tree_view); -+ } -+ } - - gtk_tree_path_free (cursor_path); - -@@ -10361,6 +11277,7 @@ - } - - tree_view->priv->search_window = gtk_window_new (GTK_WINDOW_POPUP); -+ gtk_window_set_is_temporary (GTK_WINDOW (tree_view->priv->search_window), TRUE); - gtk_window_set_screen (GTK_WINDOW (tree_view->priv->search_window), screen); - - if (GTK_WINDOW (toplevel)->group) -@@ -10792,6 +11709,11 @@ - gtk_tree_row_reference_free (tree_view->priv->scroll_to_path); - tree_view->priv->scroll_to_path = NULL; - -+ tree_view->priv->highlighted_tree = NULL; -+ tree_view->priv->highlighted_node = NULL; -+ -+ free_queued_actions (tree_view); -+ - tree_view->priv->scroll_to_column = NULL; - - g_object_unref (tree_view->priv->model); -@@ -10859,8 +11781,24 @@ - if (gtk_tree_model_get_iter (tree_view->priv->model, &iter, path)) - { - tree_view->priv->tree = _gtk_rbtree_new (); -+ -+ if (G_UNLIKELY (tree_view->priv->rows_offset != 0)) -+ _gtk_rbtree_set_base_offset (tree_view->priv->tree, -+ tree_view->priv->rows_offset); -+ - gtk_tree_view_build_tree (tree_view, tree_view->priv->tree, &iter, 1, FALSE); - } -+ -+ if (tree_view->priv->hildon_mode == HILDON_FREMANTLE -+ && tree_view->priv->hildon_ui_mode == HILDON_UI_MODE_EDIT -+ && tree_view->priv->selection->type != GTK_SELECTION_MULTIPLE) -+ { -+ /* Select the first item */ -+ search_first_focusable_path (tree_view, &path, -+ TRUE, NULL, NULL); -+ gtk_tree_selection_select_path (tree_view->priv->selection, path); -+ } -+ - gtk_tree_path_free (path); - - /* FIXME: do I need to do this? gtk_tree_view_create_buttons (tree_view); */ -@@ -12079,6 +13017,12 @@ - GtkTreeIter iter; - GtkTreeIter temp; - gboolean expand; -+ gint dy; -+ GtkTreeIter tmpiter; -+ GtkTreePath *tmppath; -+ GtkRBTree *tmptree; -+ GtkRBNode *tmpnode; -+ gint branch_height; - - if (animate) - g_object_get (gtk_widget_get_settings (GTK_WIDGET (tree_view)), -@@ -12147,12 +13091,54 @@ - gtk_tree_path_get_depth (path) + 1, - open_all); - -- remove_expand_collapse_timeout (tree_view); -+ remove_expand_collapse_timeout (tree_view); -+ -+ if (animate) -+ add_expand_collapse_timeout (tree_view, tree, node, TRUE); -+ -+ /* We do validate new nodes ourselves below, but we still need -+ * somebody to take care of the actual resizing. -+ */ -+ if (gtk_widget_get_mapped (GTK_WIDGET (tree_view))) -+ gtk_widget_queue_resize (GTK_WIDGET (tree_view)); -+ -+ install_presize_handler (tree_view); -+ -+ gtk_tree_model_get_iter (tree_view->priv->model, &tmpiter, path); -+ _gtk_tree_view_find_node (tree_view, path, &tmptree, &tmpnode); -+ -+ validate_row (tree_view, tmptree, tmpnode, &tmpiter, path); -+ branch_height = ROW_HEIGHT (tree_view, GTK_RBNODE_GET_HEIGHT (tmpnode)); -+ dy = _gtk_rbtree_node_find_offset (tmptree, tmpnode); -+ -+ tmppath = gtk_tree_path_copy (path); -+ gtk_tree_path_down (tmppath); -+ gtk_tree_model_get_iter (tree_view->priv->model, &tmpiter, tmppath); -+ -+ do -+ { -+ _gtk_tree_view_find_node (tree_view, tmppath, &tmptree, &tmpnode); -+ -+ validate_row (tree_view, tmptree, tmpnode, &tmpiter, tmppath); -+ branch_height += ROW_HEIGHT (tree_view, GTK_RBNODE_GET_HEIGHT (tmpnode)); -+ -+ gtk_tree_path_next (tmppath); -+ } -+ while (gtk_tree_model_iter_next (tree_view->priv->model, &tmpiter)); -+ -+ gtk_tree_path_prev (tmppath); - -- if (animate) -- add_expand_collapse_timeout (tree_view, tree, node, TRUE); -+ /* We scroll to the just expanded row if the expanding row and its children -+ * do not fit in the view. -+ * Otherwise, if the last child is not visible, we scroll to it to make -+ * sure all children are visible. -+ */ -+ if (branch_height > GTK_WIDGET (tree_view)->allocation.height - TREE_VIEW_HEADER_HEIGHT (tree_view)) -+ gtk_tree_view_scroll_to_cell (tree_view, path, NULL, TRUE, 0.0, 0.0); -+ else if (dy + branch_height > tree_view->priv->vadjustment->value + tree_view->priv->vadjustment->page_size) -+ gtk_tree_view_scroll_to_cell (tree_view, tmppath, NULL, TRUE, 1.0, 0.0); - -- install_presize_handler (tree_view); -+ gtk_tree_path_free (tmppath); - - g_signal_emit (tree_view, tree_view_signals[ROW_EXPANDED], 0, &iter, path); - if (open_all && node->children) -@@ -12556,6 +13542,20 @@ - GtkRBTree *tree = NULL; - GtkRBNode *node = NULL; - -+ _gtk_tree_view_find_node (tree_view, path, &tree, &node); -+ -+ /* If we are in legacy or in (new-style) edit mode, row-insensitive -+ * can be emitted. -+ */ -+ if ((tree_view->priv->hildon_mode == HILDON_DIABLO -+ || tree_view->priv->hildon_ui_mode == HILDON_UI_MODE_EDIT) -+ && !_gtk_tree_selection_row_is_selectable (tree_view->priv->selection, -+ node, path)) -+ { -+ g_signal_emit (tree_view, tree_view_signals[ROW_INSENSITIVE], 0, path); -+ return; -+ } -+ - if (gtk_tree_row_reference_valid (tree_view->priv->cursor)) - { - GtkTreePath *cursor_path; -@@ -12573,18 +13573,21 @@ - * path maps to a non-existing path and we will silently bail out. - * We unset tree and node to avoid further processing. - */ -- if (!row_is_separator (tree_view, NULL, path) -- && _gtk_tree_view_find_node (tree_view, path, &tree, &node) == FALSE) -+ if (tree_view->priv->hildon_mode == HILDON_DIABLO) - { -- tree_view->priv->cursor = -- gtk_tree_row_reference_new_proxy (G_OBJECT (tree_view), -- tree_view->priv->model, -- path); -- } -- else -- { -- tree = NULL; -- node = NULL; -+ if (!row_is_separator (tree_view, NULL, NULL, path) -+ && _gtk_tree_view_find_node (tree_view, path, &tree, &node) == FALSE) -+ { -+ tree_view->priv->cursor = -+ gtk_tree_row_reference_new_proxy (G_OBJECT (tree_view), -+ tree_view->priv->model, -+ path); -+ } -+ else -+ { -+ tree = NULL; -+ node = NULL; -+ } - } - - if (tree != NULL) -@@ -12596,8 +13599,13 @@ - { - GtkTreeSelectMode mode = 0; - -- if (tree_view->priv->modify_selection_pressed) -- mode |= GTK_TREE_SELECT_MODE_TOGGLE; -+ if (tree_view->priv->modify_selection_pressed || -+ (tree_view->priv->hildon_mode == HILDON_FREMANTLE -+ && tree_view->priv->hildon_ui_mode == HILDON_UI_MODE_EDIT -+ && tree_view->priv->selection->type == GTK_SELECTION_MULTIPLE)) -+ { -+ mode |= GTK_TREE_SELECT_MODE_TOGGLE; -+ } - if (tree_view->priv->extend_selection_pressed) - mode |= GTK_TREE_SELECT_MODE_EXTEND; - -@@ -12622,7 +13630,9 @@ - } - } - -- g_signal_emit (tree_view, tree_view_signals[CURSOR_CHANGED], 0); -+ /* Only in the original mode we want to handle the cursor */ -+ if (tree_view->priv->hildon_mode == HILDON_DIABLO) -+ g_signal_emit (tree_view, tree_view_signals[CURSOR_CHANGED], 0); - } - - /** -@@ -13780,6 +14790,7 @@ - gboolean is_separator = FALSE; - gboolean rtl; - cairo_t *cr; -+ gboolean is_header = FALSE; - - g_return_val_if_fail (GTK_IS_TREE_VIEW (tree_view), NULL); - g_return_val_if_fail (path != NULL, NULL); -@@ -13804,7 +14815,7 @@ - path)) - return NULL; - -- is_separator = row_is_separator (tree_view, &iter, NULL); -+ is_separator = row_is_separator (tree_view, &iter, &is_header, NULL); - - cell_offset = x; - -@@ -13872,7 +14883,14 @@ - - if (gtk_tree_view_column_cell_is_visible (column)) - { -- if (is_separator) -+ if (is_header) -+ { -+ gtk_tree_view_draw_row_header (tree_view, -+ &iter, -+ NULL, -+ &cell_area); -+ } -+ else if (is_separator) - gtk_paint_hline (widget->style, - drawable, - GTK_STATE_NORMAL, -@@ -15141,6 +16159,83 @@ - gtk_widget_queue_resize (GTK_WIDGET (tree_view)); - } - -+HildonTreeViewRowHeaderFunc -+hildon_tree_view_get_row_header_func (GtkTreeView *tree_view) -+{ -+ g_return_val_if_fail (GTK_IS_TREE_VIEW (tree_view), NULL); -+ -+ return tree_view->priv->row_header_func; -+} -+ -+static void -+hildon_tree_view_setup_row_header_layout (GtkTreeView *tree_view) -+{ -+ GdkColor font_color; -+ GtkStyle *font_style; -+ GtkWidget *widget = GTK_WIDGET (tree_view); -+ -+ font_style = gtk_rc_get_style_by_paths (gtk_settings_get_default (), -+ "EmpSmallSystemFont", -+ NULL, G_TYPE_NONE); -+ if (font_style) -+ { -+ pango_layout_set_font_description (tree_view->priv->row_header_layout, -+ font_style->font_desc); -+ } -+ -+ if (gtk_style_lookup_color (widget->style, "SecondaryTextColor", &font_color)) -+ { -+ PangoAttrList *list; -+ PangoAttribute *attr; -+ -+ list = pango_attr_list_new (); -+ attr = pango_attr_foreground_new (font_color.red, -+ font_color.green, -+ font_color.blue); -+ attr->start_index = 0; -+ attr->end_index = G_MAXINT; -+ pango_attr_list_insert (list, attr); -+ -+ pango_layout_set_attributes (tree_view->priv->row_header_layout, -+ list); -+ -+ pango_attr_list_unref (list); -+ } -+} -+ -+void -+hildon_tree_view_set_row_header_func (GtkTreeView *tree_view, -+ HildonTreeViewRowHeaderFunc func, -+ gpointer data, -+ GDestroyNotify destroy) -+{ -+ g_return_if_fail (GTK_IS_TREE_VIEW (tree_view)); -+ -+ if (tree_view->priv->row_header_destroy) -+ (* tree_view->priv->row_header_destroy) (tree_view->priv->row_header_data); -+ -+ tree_view->priv->row_header_func = func; -+ tree_view->priv->row_header_data = data; -+ tree_view->priv->row_header_destroy = destroy; -+ -+ if (func && !tree_view->priv->row_header_layout) -+ { -+ tree_view->priv->row_header_layout = -+ gtk_widget_create_pango_layout (GTK_WIDGET (tree_view), ""); -+ -+ hildon_tree_view_setup_row_header_layout (tree_view); -+ } -+ else if (!func && tree_view->priv->row_header_layout) -+ { -+ g_object_unref (tree_view->priv->row_header_layout); -+ tree_view->priv->row_header_layout = NULL; -+ } -+ -+ /* Have the tree recalculate heights */ -+ _gtk_rbtree_mark_invalid (tree_view->priv->tree); -+ gtk_widget_queue_resize (GTK_WIDGET (tree_view)); -+} -+ - - static void - gtk_tree_view_grab_notify (GtkWidget *widget, -@@ -15156,6 +16251,21 @@ - - if (tree_view->priv->rubber_band_status) - gtk_tree_view_stop_rubber_band (tree_view); -+ -+ if (tree_view->priv->queued_expand_row) -+ { -+ gtk_tree_row_reference_free (tree_view->priv->queued_expand_row); -+ tree_view->priv->queued_expand_row = NULL; -+ } -+ -+ if (tree_view->priv->queued_tapped_row) -+ { -+ gtk_tree_row_reference_free (tree_view->priv->queued_tapped_row); -+ tree_view->priv->queued_tapped_row = NULL; -+ } -+ -+ free_queued_select_row (tree_view); -+ free_queued_activate_row (tree_view); - } - } - -@@ -15755,5 +16865,373 @@ - return tree_view->priv->tooltip_column; - } - -+static gboolean -+gtk_tree_view_tap_and_hold_query (GtkWidget *widget, -+ GdkEvent *event) -+{ -+ GtkTreeView *tree_view = GTK_TREE_VIEW (widget); -+ GtkTreePath *path; -+ GtkRBTree *tree = NULL; -+ GtkRBNode *node = NULL; -+ gdouble x, y; -+ gint new_y; -+ gboolean sensitive; -+ -+ if (!tree_view->priv->tree) -+ return FALSE; -+ -+ if (!gdk_event_get_coords (event, &x, &y)) -+ return FALSE; -+ -+ new_y = TREE_WINDOW_Y_TO_RBTREE_Y (tree_view, y); -+ if (new_y < 0) -+ new_y = 0; -+ _gtk_rbtree_find_offset (tree_view->priv->tree, new_y, &tree, &node); -+ if (node == NULL) -+ return TRUE; -+ -+ path = _gtk_tree_view_find_path (tree_view, tree, node); -+ -+ if (tree_view->priv->hildon_mode == HILDON_FREMANTLE -+ && tree_view->priv->hildon_ui_mode == HILDON_UI_MODE_NORMAL) -+ { -+ /* The normal mode has no notion of selection, so we special-case -+ * it here. -+ */ -+ sensitive = !row_is_separator (tree_view, NULL, NULL, path); -+ } -+ else -+ { -+ sensitive = _gtk_tree_selection_row_is_selectable (tree_view->priv->selection, -+ node, path); -+ } -+ -+ gtk_tree_path_free (path); -+ -+ return !sensitive; -+} -+ -+static void -+free_queued_select_row (GtkTreeView *tree_view) -+{ -+ /* We only clear the selected flag (used for highlight) if the node -+ * was previously *not* selected. -+ */ -+ if (tree_view->priv->hildon_mode == HILDON_FREMANTLE -+ && gtk_tree_row_reference_valid (tree_view->priv->queued_select_row)) -+ { -+ if (tree_view->priv->highlighted_node) -+ { -+ _gtk_tree_view_queue_draw_node (tree_view, -+ tree_view->priv->highlighted_tree, -+ tree_view->priv->highlighted_node, -+ NULL); -+ -+ tree_view->priv->highlighted_tree = NULL; -+ tree_view->priv->highlighted_node = NULL; -+ } -+ } -+ -+ gtk_tree_row_reference_free (tree_view->priv->queued_select_row); -+ tree_view->priv->queued_select_row = NULL; -+} -+ -+static void -+free_queued_activate_row (GtkTreeView *tree_view) -+{ -+ if (tree_view->priv->hildon_mode == HILDON_FREMANTLE -+ && tree_view->priv->hildon_ui_mode == HILDON_UI_MODE_NORMAL -+ && gtk_tree_row_reference_valid (tree_view->priv->queued_activate_row)) -+ { -+ if (tree_view->priv->highlighted_node) -+ { -+ _gtk_tree_view_queue_draw_node (tree_view, -+ tree_view->priv->highlighted_tree, -+ tree_view->priv->highlighted_node, -+ NULL); -+ -+ tree_view->priv->highlighted_tree = NULL; -+ tree_view->priv->highlighted_node = NULL; -+ } -+ } -+ -+ gtk_tree_row_reference_free (tree_view->priv->queued_activate_row); -+ tree_view->priv->queued_activate_row = NULL; -+} -+ -+static void -+free_queued_actions (GtkTreeView *tree_view) -+{ -+ free_queued_activate_row (tree_view); -+ free_queued_select_row (tree_view); -+ -+ gtk_tree_row_reference_free (tree_view->priv->queued_expand_row); -+ tree_view->priv->queued_expand_row = NULL; -+ -+ gtk_tree_row_reference_free (tree_view->priv->queued_tapped_row); -+ tree_view->priv->queued_tapped_row = NULL; -+} -+ -+HildonUIMode -+hildon_tree_view_get_hildon_ui_mode (GtkTreeView *tree_view) -+{ -+ g_return_val_if_fail (GTK_IS_TREE_VIEW (tree_view), 0); -+ -+ return tree_view->priv->hildon_ui_mode; -+} -+ -+void -+hildon_tree_view_set_hildon_ui_mode (GtkTreeView *tree_view, -+ HildonUIMode hildon_ui_mode) -+{ -+ g_return_if_fail (GTK_IS_TREE_VIEW (tree_view)); -+ -+ /* Don't check if the new mode matches the old mode; always continue -+ * so that the selection corrections below always happen. -+ */ -+ tree_view->priv->hildon_ui_mode = hildon_ui_mode; -+ -+ if (tree_view->priv->hildon_mode == HILDON_DIABLO) -+ return; -+ -+ /* For both normal and edit mode a couple of things are disabled. */ -+ -+ /* Mode-specific settings */ -+ if (hildon_ui_mode == HILDON_UI_MODE_NORMAL) -+ { -+ gtk_tree_selection_set_mode (tree_view->priv->selection, -+ GTK_SELECTION_NONE); -+ } -+ else if (hildon_ui_mode == HILDON_UI_MODE_EDIT) -+ { -+ if (gtk_tree_selection_get_mode (tree_view->priv->selection) == GTK_SELECTION_NONE) -+ { -+ gtk_tree_selection_set_mode (tree_view->priv->selection, -+ GTK_SELECTION_SINGLE); -+ } -+ -+ if (tree_view->priv->selection->type != GTK_SELECTION_MULTIPLE -+ && gtk_tree_selection_count_selected_rows (tree_view->priv->selection) < 1) -+ { -+ GtkTreePath *path; -+ -+ /* Select the first item */ -+ path = gtk_tree_path_new_first (); -+ search_first_focusable_path (tree_view, &path, -+ TRUE, NULL, NULL); -+ gtk_tree_selection_select_path (tree_view->priv->selection, path); -+ gtk_tree_path_free (path); -+ } -+ } -+ else -+ g_assert_not_reached (); -+} -+ -+static void -+hildon_tree_view_set_rows_offset (GtkTreeView *tree_view, -+ int rows_offset) -+{ -+ if (tree_view->priv->rows_offset == rows_offset) -+ return; -+ -+ tree_view->priv->rows_offset = rows_offset; -+ if (tree_view->priv->tree) -+ _gtk_rbtree_set_base_offset (tree_view->priv->tree, rows_offset); -+ -+ gtk_widget_queue_resize (GTK_WIDGET (tree_view)); -+} -+ -+static void -+hildon_tree_view_create_action_area (GtkTreeView *tree_view) -+{ -+ /* gtk_tree_view_put() takes over ownership and so we do not -+ * have to unref these values in gtk_tree_view_destroy(). -+ */ -+ tree_view->priv->action_area_event_box = gtk_event_box_new (); -+ gtk_tree_view_put (tree_view, tree_view->priv->action_area_event_box, -+ 0, 0, 0, 0); -+ -+ if (tree_view->priv->action_area_orientation == GTK_ORIENTATION_HORIZONTAL) -+ tree_view->priv->action_area_box = gtk_hbox_new (TRUE, 0); -+ else if (tree_view->priv->action_area_orientation == GTK_ORIENTATION_VERTICAL) -+ tree_view->priv->action_area_box = gtk_vbox_new (TRUE, 0); -+ -+ gtk_container_add (GTK_CONTAINER (tree_view->priv->action_area_event_box), -+ tree_view->priv->action_area_box); -+} -+ -+static void -+hildon_tree_view_set_action_area_height (GtkTreeView *tree_view) -+{ -+ if (tree_view->priv->action_area_orientation == GTK_ORIENTATION_HORIZONTAL) -+ { -+ int row_height; -+ -+ gtk_widget_style_get (GTK_WIDGET (tree_view), -+ "row-height", &row_height, -+ NULL); -+ hildon_tree_view_set_rows_offset (tree_view, row_height); -+ } -+ else if (tree_view->priv->action_area_orientation == GTK_ORIENTATION_VERTICAL) -+ { -+ GList *children; -+ -+ /* The height in portrait mode is currently hardcoded to 90px per -+ * button. -+ */ -+ children = gtk_container_get_children (GTK_CONTAINER (tree_view->priv->action_area_box)); -+ hildon_tree_view_set_rows_offset (tree_view, -+ g_list_length (children) * 90); -+ g_list_free (children); -+ } -+} -+ -+void -+hildon_tree_view_set_action_area_visible (GtkTreeView *tree_view, -+ gboolean visible) -+{ -+ g_return_if_fail (GTK_IS_TREE_VIEW (tree_view)); -+ -+ if (tree_view->priv->action_area_visible == !!visible) -+ return; -+ -+ tree_view->priv->action_area_visible = visible; -+ -+ if (visible) -+ { -+ hildon_tree_view_set_action_area_height (tree_view); -+ -+ if (!tree_view->priv->action_area_event_box) -+ hildon_tree_view_create_action_area (tree_view); -+ -+ gtk_widget_show (tree_view->priv->action_area_box); -+ gtk_widget_show (tree_view->priv->action_area_event_box); -+ } -+ else -+ { -+ gtk_widget_hide (tree_view->priv->action_area_event_box); -+ -+ hildon_tree_view_set_rows_offset (tree_view, 0); -+ } -+} -+ -+gboolean -+hildon_tree_view_get_action_area_visible (GtkTreeView *tree_view) -+{ -+ g_return_val_if_fail (GTK_IS_TREE_VIEW (tree_view), FALSE); -+ -+ return tree_view->priv->action_area_visible; -+} -+ -+static void -+hildon_tree_view_rotate_action_area_box (GtkBox *old_box, -+ GtkBox *new_box) -+{ -+ int spacing, border_width; -+ GList *children, *child; -+ gboolean homogeneous; -+ -+ g_object_get (old_box, -+ "homogeneous", &homogeneous, -+ "spacing", &spacing, -+ "border-width", &border_width, -+ NULL); -+ -+ g_object_set (new_box, -+ "homogeneous", homogeneous, -+ "spacing", spacing, -+ "border-width", border_width, -+ NULL); -+ -+ children = gtk_container_get_children (GTK_CONTAINER (old_box)); -+ for (child = children; child; child = child->next) -+ { -+ guint padding; -+ gboolean expand, fill; -+ GtkPackType type; -+ GtkWidget *widget = child->data; -+ -+ g_object_ref (widget); -+ gtk_box_query_child_packing (old_box, widget, -+ &expand, &fill, &padding, &type); -+ gtk_container_remove (GTK_CONTAINER (old_box), widget); -+ gtk_container_add (GTK_CONTAINER (new_box), widget); -+ gtk_box_set_child_packing (new_box, widget, -+ expand, fill, padding, type); -+ g_object_unref (widget); -+ } -+ -+ g_list_free (children); -+ -+ if (gtk_widget_get_visible (GTK_WIDGET (old_box))) -+ gtk_widget_show (GTK_WIDGET (new_box)); -+} -+ -+void -+hildon_tree_view_set_action_area_orientation (GtkTreeView *tree_view, -+ GtkOrientation orientation) -+{ -+ GtkWidget *old_box; -+ GtkWidget *new_box; -+ -+ g_return_if_fail (GTK_IS_TREE_VIEW (tree_view)); -+ -+ if (tree_view->priv->action_area_orientation == orientation) -+ return; -+ -+ tree_view->priv->action_area_orientation = orientation; -+ -+ old_box = tree_view->priv->action_area_box; -+ if (orientation == GTK_ORIENTATION_HORIZONTAL) -+ new_box = gtk_hbox_new (TRUE, 0); -+ else if (orientation == GTK_ORIENTATION_VERTICAL) -+ new_box = gtk_vbox_new (TRUE, 0); -+ -+ if (tree_view->priv->action_area_visible) -+ hildon_tree_view_set_action_area_height (tree_view); -+ -+ hildon_tree_view_rotate_action_area_box (GTK_BOX (old_box), -+ GTK_BOX (new_box)); -+ -+ gtk_widget_destroy (old_box); -+ -+ tree_view->priv->action_area_box = new_box; -+ gtk_container_add (GTK_CONTAINER (tree_view->priv->action_area_event_box), -+ tree_view->priv->action_area_box); -+} -+ -+GtkOrientation -+hildon_tree_view_get_action_area_orientation (GtkTreeView *tree_view) -+{ -+ g_return_val_if_fail (GTK_IS_TREE_VIEW (tree_view), 0); -+ -+ return tree_view->priv->action_area_orientation; -+} -+ -+/** -+ * hildon_tree_view_get_action_area_box: -+ * @tree_view: a #GtkTreeView -+ * -+ * Returns the GtkBox is embedded in GtkTreeView's action area. Depending -+ * on the setting of the GtkTreeView:action-area-orientation property -+ * this is either a GtkHBox or GtkVBox. You do not own a reference to -+ * the returned widget and thus this value should not be unreferenced. -+ * -+ * Returns: a pointer to a GtkBox. This pointer should not be unreferenced. -+ * -+ * Since: maemo 5.0 -+ * Stability: unstable -+ */ -+GtkWidget * -+hildon_tree_view_get_action_area_box (GtkTreeView *tree_view) -+{ -+ g_return_val_if_fail (GTK_IS_TREE_VIEW (tree_view), NULL); -+ -+ if (!tree_view->priv->action_area_event_box) -+ hildon_tree_view_create_action_area (tree_view); -+ -+ return tree_view->priv->action_area_box; -+} -+ - #define __GTK_TREE_VIEW_C__ - #include "gtkaliasdef.c" ---- a/gtk/gtktreeview.h -+++ b/gtk/gtktreeview.h -@@ -111,7 +111,8 @@ - void (*_gtk_reserved1) (void); - void (*_gtk_reserved2) (void); - void (*_gtk_reserved3) (void); -- void (*_gtk_reserved4) (void); -+ void (* row_insensitive) (GtkTreeView *tree_view, -+ GtkTreePath *path); - }; - - -@@ -134,7 +135,10 @@ - typedef void (*GtkTreeViewSearchPositionFunc) (GtkTreeView *tree_view, - GtkWidget *search_dialog, - gpointer user_data); -- -+typedef gboolean (*HildonTreeViewRowHeaderFunc) (GtkTreeModel *model, -+ GtkTreeIter *iter, -+ gchar **header_text, -+ gpointer data); - - /* Creators */ - GType gtk_tree_view_get_type (void) G_GNUC_CONST; -@@ -392,6 +396,27 @@ - gpointer data, - GDestroyNotify destroy); - -+HildonTreeViewRowHeaderFunc hildon_tree_view_get_row_header_func (GtkTreeView *tree_view); -+void hildon_tree_view_set_row_header_func (GtkTreeView *tree_view, -+ HildonTreeViewRowHeaderFunc func, -+ gpointer data, -+ GDestroyNotify destroy); -+ -+HildonUIMode hildon_tree_view_get_hildon_ui_mode (GtkTreeView *tree_view); -+void hildon_tree_view_set_hildon_ui_mode (GtkTreeView *tree_view, -+ HildonUIMode mode); -+ -+ -+void hildon_tree_view_set_action_area_visible (GtkTreeView *tree_view, -+ gboolean visible); -+gboolean hildon_tree_view_get_action_area_visible (GtkTreeView *tree_view); -+ -+void hildon_tree_view_set_action_area_orientation (GtkTreeView *tree_view, -+ GtkOrientation orientation); -+GtkOrientation hildon_tree_view_get_action_area_orientation (GtkTreeView *tree_view); -+ -+GtkWidget *hildon_tree_view_get_action_area_box (GtkTreeView *tree_view); -+ - GtkTreeViewGridLines gtk_tree_view_get_grid_lines (GtkTreeView *tree_view); - void gtk_tree_view_set_grid_lines (GtkTreeView *tree_view, - GtkTreeViewGridLines grid_lines); ---- a/gtk/gtktreeprivate.h -+++ b/gtk/gtktreeprivate.h -@@ -28,7 +28,7 @@ - #include - #include - --#define TREE_VIEW_DRAG_WIDTH 6 -+#define TREE_VIEW_DRAG_WIDTH 28 - - typedef enum - { -@@ -300,6 +300,37 @@ - - /* Whether our key press handler is to avoid sending an unhandled binding to the search entry */ - guint search_entry_avoid_unhandled_binding : 1; -+ -+ /* Fields for Maemo specific functionality */ -+ GtkTreeRowReference *queued_select_row; -+ GtkTreeRowReference *queued_expand_row; -+ GtkTreeRowReference *queued_activate_row; -+ GtkTreeRowReference *queued_tapped_row; -+ -+ GtkRBNode *highlighted_node; -+ GtkRBTree *highlighted_tree; -+ -+ GtkTreeCellDataHint cell_data_hint; -+ -+ HildonUIMode hildon_ui_mode; -+ HildonMode hildon_mode; -+ -+ GdkPixbuf *tickmark_icon; -+ -+ HildonTreeViewRowHeaderFunc row_header_func; -+ gpointer row_header_data; -+ GDestroyNotify row_header_destroy; -+ PangoLayout *row_header_layout; -+ -+ gint rows_offset; -+ GtkOrientation action_area_orientation; -+ GtkWidget *action_area_event_box; -+ GtkWidget *action_area_box; -+ -+ guint queued_shift_pressed : 1; -+ guint queued_ctrl_pressed : 1; -+ -+ guint action_area_visible : 1; - }; - - #ifdef __GNUC__ ---- a/gtk/gtktreeviewcolumn.c -+++ b/gtk/gtktreeviewcolumn.c -@@ -851,7 +851,7 @@ - G_CALLBACK (gtk_tree_view_column_button_clicked), - tree_column); - -- tree_column->alignment = gtk_alignment_new (tree_column->xalign, 0.5, 0.0, 0.0); -+ tree_column->alignment = gtk_alignment_new (tree_column->xalign, 0.5, 1.0, 1.0); - - hbox = gtk_hbox_new (FALSE, 2); - tree_column->arrow = gtk_arrow_new (GTK_ARROW_DOWN, GTK_SHADOW_IN); -@@ -916,7 +916,7 @@ - - /* Set up the actual button */ - gtk_alignment_set (GTK_ALIGNMENT (alignment), tree_column->xalign, -- 0.5, 0.0, 0.0); -+ 0.5, 1.0, 1.0); - - if (tree_column->child) - { -@@ -926,6 +926,7 @@ - current_child); - gtk_container_add (GTK_CONTAINER (alignment), - tree_column->child); -+ current_child = tree_column->child; - } - } - else -@@ -948,6 +949,14 @@ - ""); - } - -+ if (GTK_IS_MISC (current_child)) -+ { -+ gfloat yalign; -+ -+ gtk_misc_get_alignment (GTK_MISC (current_child), NULL, &yalign); -+ gtk_misc_set_alignment (GTK_MISC (current_child), tree_column->xalign, yalign); -+ } -+ - if (GTK_IS_TREE_SORTABLE (model)) - gtk_tree_sortable_get_sort_column_id (GTK_TREE_SORTABLE (model), - &sort_column_id, -@@ -2536,6 +2545,100 @@ - } - - /** -+ * gtk_tree_view_column_cell_set_cell_data_with_hint: -+ * @tree_column: A #GtkTreeViewColumn. -+ * @tree_model: The #GtkTreeModel to to get the cell renderers attributes from. -+ * @iter: The #GtkTreeIter to to get the cell renderer's attributes from. -+ * @is_expander: %TRUE, if the row has children -+ * @is_expanded: %TRUE, if the row has visible children -+ * @hint: A #GtkTreeCellDataHint for the #GtkTreeCellDataFunc. -+ * -+ * Sets the cell renderer based on the @tree_model and @iter. That is, for -+ * every attribute mapping in @tree_column, it will get a value from the set -+ * column on the @iter, and use that value to set the attribute on the cell -+ * renderer. The @hint is a hint for the #GtkTreeCellDataFunc so that it does not -+ * have to set all cell renderer properties, possible leading to some -+ * optimizations. This is used primarily by the #GtkTreeView. -+ * -+ * Since: maemo 4.0 -+ * Stability: Unstable -+ **/ -+void -+gtk_tree_view_column_cell_set_cell_data_with_hint (GtkTreeViewColumn *tree_column, -+ GtkTreeModel *tree_model, -+ GtkTreeIter *iter, -+ gboolean is_expander, -+ gboolean is_expanded, -+ GtkTreeCellDataHint hint) -+{ -+ GSList *list; -+ GValue value = { 0, }; -+ GList *cell_list; -+ -+ g_return_if_fail (GTK_IS_TREE_VIEW_COLUMN (tree_column)); -+ -+ if (tree_model == NULL) -+ return; -+ -+ GTK_TREE_VIEW (tree_column->tree_view)->priv->cell_data_hint = hint; -+ -+ for (cell_list = tree_column->cell_list; cell_list; cell_list = cell_list->next) -+ { -+ GtkTreeViewColumnCellInfo *info = (GtkTreeViewColumnCellInfo *) cell_list->data; -+ GObject *cell = (GObject *) info->cell; -+ -+ list = info->attributes; -+ -+ g_object_freeze_notify (cell); -+ -+ if (info->cell->is_expander != is_expander) -+ g_object_set (cell, "is-expander", is_expander, NULL); -+ -+ if (info->cell->is_expanded != is_expanded) -+ g_object_set (cell, "is-expanded", is_expanded, NULL); -+ -+ while (list && list->next) -+ { -+ gtk_tree_model_get_value (tree_model, iter, -+ GPOINTER_TO_INT (list->next->data), -+ &value); -+ g_object_set_property (cell, (gchar *) list->data, &value); -+ g_value_unset (&value); -+ list = list->next->next; -+ } -+ -+ if (info->func) -+ (* info->func) (tree_column, info->cell, tree_model, iter, info->func_data); -+ g_object_thaw_notify (G_OBJECT (info->cell)); -+ } -+} -+ -+/** -+ * gtk_tree_view_column_get_cell_data_hint: -+ * @tree_column: A #GtkTreeViewColumn. -+ * -+ * Returns the current value of the cell data hint as a -+ * #GtkTreeCellDataHint. Note that the value returned is only -+ * valid when called from a #GtkTreeCellDataFunc. The value of the hint -+ * tells you why the #GtkTreeView is calling the #GtkTreeCellDataFunc. -+ * Based on this hint, you can omit to generate the data and set certain -+ * cell renderer properties to improve performance. -+ * -+ * Return value: A #GtkTreeCellDataHint with the hint. -+ * -+ * Since: maemo 4.0 -+ * Stability: Unstable -+ */ -+GtkTreeCellDataHint -+gtk_tree_view_column_get_cell_data_hint (GtkTreeViewColumn *tree_column) -+{ -+ g_return_val_if_fail (GTK_IS_TREE_VIEW_COLUMN (tree_column), 0); -+ g_return_val_if_fail (GTK_IS_TREE_VIEW (tree_column->tree_view), 0); -+ -+ return GTK_TREE_VIEW (tree_column->tree_view)->priv->cell_data_hint; -+} -+ -+/** - * gtk_tree_view_column_cell_set_cell_data: - * @tree_column: A #GtkTreeViewColumn. - * @tree_model: The #GtkTreeModel to to get the cell renderers attributes from. -@@ -2564,6 +2667,8 @@ - if (tree_model == NULL) - return; - -+ GTK_TREE_VIEW (tree_column->tree_view)->priv->cell_data_hint = GTK_TREE_CELL_DATA_HINT_ALL; -+ - for (cell_list = tree_column->cell_list; cell_list; cell_list = cell_list->next) - { - GtkTreeViewColumnCellInfo *info = (GtkTreeViewColumnCellInfo *) cell_list->data; ---- a/gtk/gtktreeviewcolumn.h -+++ b/gtk/gtktreeviewcolumn.h -@@ -238,6 +238,25 @@ - void gtk_tree_view_column_queue_resize (GtkTreeViewColumn *tree_column); - GtkWidget *gtk_tree_view_column_get_tree_view (GtkTreeViewColumn *tree_column); - -+/** -+ * GtkTreeCellDataHint: -+ * -+ * See gtk_tree_view_column_get_cell_data_hint(). -+ **/ -+typedef enum -+{ -+ GTK_TREE_CELL_DATA_HINT_ALL, -+ GTK_TREE_CELL_DATA_HINT_KEY_FOCUS, -+ GTK_TREE_CELL_DATA_HINT_SENSITIVITY -+} GtkTreeCellDataHint; -+ -+void gtk_tree_view_column_cell_set_cell_data_with_hint (GtkTreeViewColumn *tree_column, -+ GtkTreeModel *tree_model, -+ GtkTreeIter *iter, -+ gboolean is_expander, -+ gboolean is_expanded, -+ GtkTreeCellDataHint hint); -+GtkTreeCellDataHint gtk_tree_view_column_get_cell_data_hint (GtkTreeViewColumn *tree_column); - - G_END_DECLS - ---- a/gtk/gtktreeselection.c -+++ b/gtk/gtktreeselection.c -@@ -25,6 +25,7 @@ - #include "gtkmarshalers.h" - #include "gtkintl.h" - #include "gtkalias.h" -+#include "gtkcelllayout.h" - - static void gtk_tree_selection_finalize (GObject *object); - static gint gtk_tree_selection_real_select_all (GtkTreeSelection *selection); -@@ -160,12 +161,24 @@ - GtkSelectionMode type) - { - GtkTreeSelectionFunc tmp_func; -+ HildonMode mode; - g_return_if_fail (GTK_IS_TREE_SELECTION (selection)); - - if (selection->type == type) - return; - -- -+ gtk_widget_style_get (GTK_WIDGET (selection->tree_view), -+ "hildon-mode", &mode, -+ NULL); -+ -+ if (mode == HILDON_FREMANTLE -+ && selection->tree_view->priv->hildon_ui_mode == HILDON_UI_MODE_NORMAL -+ && type != GTK_SELECTION_NONE) -+ { -+ g_warning ("Cannot change the selection mode to anything other than GTK_SELECTION_NONE if hildon-ui-mode is GTK_HILDON_UI_MODE_NORMAL.\n"); -+ return; -+ } -+ - if (type == GTK_SELECTION_NONE) - { - /* We do this so that we unconditionally unset all rows -@@ -202,6 +215,47 @@ - } - } - -+ if (!selected -+ && mode == HILDON_FREMANTLE -+ && selection->tree_view->priv->hildon_ui_mode == HILDON_UI_MODE_EDIT) -+ { -+ GList *rows; -+ -+ /* One item must stay selected; we look for the first selected -+ * item we can find, that one becomes the anchor. We silently -+ * assume here that there is at least *one* selected row, -+ * as mandated by any new-style edit mode. When switching -+ * from SELECTION_NONE there is no selected row, and the -+ * tree view will be responsible for selecting a node. -+ */ -+ -+ if (anchor_path) -+ gtk_tree_path_free (anchor_path); -+ -+ /* FIXME: this can be obviously optimized by walking -+ * the selection tree ourselves; or probably having a _real -+ * variant of _get_selected_rows() that we can tell to stop -+ * as soon as a selected node is found. -+ */ -+ rows = gtk_tree_selection_get_selected_rows (selection, NULL); -+ if (rows) -+ { -+ anchor_path = gtk_tree_path_copy (rows->data); -+ g_list_foreach (rows, (GFunc)gtk_tree_path_free, NULL); -+ g_list_free (rows); -+ -+ _gtk_tree_view_find_node (selection->tree_view, -+ anchor_path, -+ &tree, -+ &node); -+ -+ if (node && GTK_RBNODE_FLAG_SET (node, GTK_RBNODE_IS_SELECTED)) -+ selected = TRUE; -+ -+ g_return_if_fail (selected == TRUE); -+ } -+ } -+ - /* We do this so that we unconditionally unset all rows - */ - tmp_func = selection->user_func; -@@ -221,6 +275,23 @@ - } - - selection->type = type; -+ -+ if (type == GTK_SELECTION_SINGLE -+ || type == GTK_SELECTION_BROWSE) -+ { -+ GtkTreeIter iter; -+ -+ /* Make sure the cursor is on a selected node */ -+ if (gtk_tree_selection_get_selected (selection, NULL, &iter)) -+ { -+ GtkTreePath *path; -+ -+ path = gtk_tree_model_get_path (selection->tree_view->priv->model, -+ &iter); -+ gtk_tree_view_set_cursor (selection->tree_view, path, NULL, FALSE); -+ gtk_tree_path_free (path); -+ } -+ } - } - - /** -@@ -1249,6 +1320,39 @@ - g_signal_emit (selection, tree_selection_signals[CHANGED], 0); - } - -+static gboolean -+tree_column_is_sensitive (GtkTreeViewColumn *column, -+ GtkTreeModel *model, -+ GtkTreeIter *iter) -+{ -+ GList *cells, *list; -+ gboolean sensitive = TRUE; -+ gboolean visible; -+ -+ gtk_tree_view_column_cell_set_cell_data_with_hint (column, model, -+ iter, FALSE, FALSE, -+ GTK_TREE_CELL_DATA_HINT_SENSITIVITY); -+ -+ cells = gtk_cell_layout_get_cells (GTK_CELL_LAYOUT (column)); -+ -+ list = cells; -+ while (list) -+ { -+ g_object_get (list->data, -+ "sensitive", &sensitive, -+ "visible", &visible, -+ NULL); -+ -+ if (visible && sensitive) -+ break; -+ -+ list = list->next; -+ } -+ g_list_free (cells); -+ -+ return sensitive; -+} -+ - gboolean - _gtk_tree_selection_row_is_selectable (GtkTreeSelection *selection, - GtkRBNode *node, -@@ -1256,6 +1360,17 @@ - { - GtkTreeIter iter; - gboolean sensitive = FALSE; -+ GList *list; -+ HildonMode mode; -+ -+ gtk_widget_style_get (GTK_WIDGET (selection->tree_view), -+ "hildon-mode", &mode, -+ NULL); -+ -+ /* normal-mode does not support selections */ -+ if (mode == HILDON_FREMANTLE -+ && selection->tree_view->priv->hildon_ui_mode == HILDON_UI_MODE_NORMAL) -+ return FALSE; - - if (!gtk_tree_model_get_iter (selection->tree_view->priv->model, &iter, path)) - sensitive = TRUE; -@@ -1269,6 +1384,29 @@ - return FALSE; - } - -+ if (!sensitive && selection->tree_view->priv->row_header_func) -+ { -+ /* never allow separators to be selected */ -+ if ((* selection->tree_view->priv->row_header_func) (selection->tree_view->priv->model, -+ &iter, -+ NULL, -+ selection->tree_view->priv->row_header_data)) -+ return FALSE; -+ } -+ -+ for (list = selection->tree_view->priv->columns; list && !sensitive; list = list->next) -+ { -+ GtkTreeViewColumn *column = GTK_TREE_VIEW_COLUMN (list->data); -+ -+ if (!column->visible) -+ continue; -+ -+ sensitive = tree_column_is_sensitive (column, selection->tree_view->priv->model, &iter); -+ } -+ -+ if (!sensitive) -+ return FALSE; -+ - if (selection->user_func) - return (*selection->user_func) (selection, selection->tree_view->priv->model, path, - GTK_RBNODE_FLAG_SET (node, GTK_RBNODE_IS_SELECTED), -@@ -1453,6 +1591,11 @@ - path = _gtk_tree_view_find_path (selection->tree_view, tree, node); - toggle = _gtk_tree_selection_row_is_selectable (selection, node, path); - gtk_tree_path_free (path); -+ -+ /* Allow unselecting an insensitive row */ -+ if (!toggle && !select -+ && GTK_RBNODE_FLAG_SET (node, GTK_RBNODE_IS_SELECTED)) -+ toggle = TRUE; - } - - if (toggle) diff --git a/maemo/gtk+2.0-maemo/xid-collision-debug.patch b/maemo/gtk+2.0-maemo/xid-collision-debug.patch deleted file mode 100644 index d61238c3b..000000000 --- a/maemo/gtk+2.0-maemo/xid-collision-debug.patch +++ /dev/null @@ -1,15 +0,0 @@ ---- gtk+-2.18.3/gdk/x11/gdkxid.c 2009-06-19 04:59:18.000000000 +0200 -+++ gtk+-2.18.3/gdk/x11/gdkxid.c.new 2009-07-22 11:30:12.000000000 +0200 -@@ -56,10 +56,10 @@ - if (!display_x11->xid_ht) - display_x11->xid_ht = g_hash_table_new ((GHashFunc) gdk_xid_hash, - (GEqualFunc) gdk_xid_equal); -- -+/* - if (g_hash_table_lookup (display_x11->xid_ht, xid)) - g_warning ("XID collision, trouble ahead"); -- -+*/ - g_hash_table_insert (display_x11->xid_ht, xid, data); - } - diff --git a/maemo/hildon-desktop/APKBUILD b/maemo/hildon-desktop/APKBUILD deleted file mode 100644 index 617aafee8..000000000 --- a/maemo/hildon-desktop/APKBUILD +++ /dev/null @@ -1,36 +0,0 @@ -# Maintainer: Nikita Ukhrenkov -pkgname=hildon-desktop -pkgver=2.2.157.11 -pkgrel=2 -pkgdesc="Hildon desktop for Fremantle" -arch="all !armhf !armv7" -url="https://github.com/maemo-leste/hildon-desktop" -license="GPL-2.0-or-later" -depends="libhildon libmatchbox2 libhildondesktop clutter gnome-menus profiled" -makedepends=" - autoconf - automake - gnome-menus-dev - libhildondesktop-dev - libmatchbox2-dev - libtool - mce-headers - profiled-dev" -source="$pkgname-$pkgver.tar.gz::https://github.com/maemo-leste/hildon-desktop/archive/$pkgver.tar.gz - build-fix.patch" - -build() { - ./autogen.sh - ./configure --prefix=/usr --sysconfdir=/etc - make -} - -package() { - make DESTDIR="$pkgdir/" install - - # Once dsmetool is packaged, we should use this rather than our own launch script - # install -Dm644 "$builddir"/debian/hildon-desktop.xsession \ - # "$pkgdir"/usr/bin/hildon-desktop -} -sha512sums="4084f535b366283d2d7d1a2ca546a925c50506a97270c0bfbb9358f859a4e175d9fbd530ffa9e3251afe372c58352d91d4d707c9190b19b114f655f35ea16f58 hildon-desktop-2.2.157.11.tar.gz -f9f7ae9c4b175bb40d9f76a6716afdf3e77630bedee727b09b442b723a90f0dfa125937c483e75024343ae55eb60e5d824bc8bf3ce554c071cca9d88b9af2594 build-fix.patch" diff --git a/maemo/hildon-desktop/build-fix.patch b/maemo/hildon-desktop/build-fix.patch deleted file mode 100644 index c968bb9bc..000000000 --- a/maemo/hildon-desktop/build-fix.patch +++ /dev/null @@ -1,16 +0,0 @@ -hd-render-manager.c:3414:46: error: 'HdRenderManagerPrivate' {aka 'struct _HdRenderManagerPrivate'} has no member named 'zoomed'; did you mean 'home'? - g_return_if_fail (!render_manager->priv->zoomed); - ^~~~~~ --- -diff --git a/src/home/hd-render-manager.c b/src/home/hd-render-manager.c -index b3a2943..8c1ceca 100644 ---- a/src/home/hd-render-manager.c -+++ b/src/home/hd-render-manager.c -@@ -3411,7 +3411,6 @@ hd_render_manager_press_effect (void) - HdRenderManagerPrivate *priv = render_manager->priv; - - g_return_if_fail (render_manager != NULL); -- g_return_if_fail (!render_manager->priv->zoomed); - - if (!priv->press_effect) - { diff --git a/maemo/hildon-home/APKBUILD b/maemo/hildon-home/APKBUILD deleted file mode 100644 index 1b9d5f00e..000000000 --- a/maemo/hildon-home/APKBUILD +++ /dev/null @@ -1,27 +0,0 @@ -# Maintainer: Nikita Ukhrenkov -pkgname=hildon-home -pkgver=0.3.72 -pkgrel=1 -pkgdesc="Hildon Home application" -arch="all !armhf !armv7" -url="https://github.com/maemo-leste/$pkgname" -license="GPL" -depends="libhildon" -makedepends="libhildon-dev libhildondesktop-dev libosso-dev - hildon-thumbnail-dev libhildonfm-dev osso-bookmark-engine-dev - mce-headers sqlite-dev autoconf automake m4 libtool" -source="$pkgname-$pkgver.tar.gz::https://github.com/maemo-leste/$pkgname/archive/$pkgver.tar.gz" - -builddir="$srcdir/$pkgname-$pkgver" - -build() { - cd "$builddir" - ./autogen.sh --prefix=/usr CFLAGS="${CFLAGS} -Wno-error=deprecated-declarations -Wno-error=misleading-indentation" - make -} - -package() { - cd "$builddir" - make DESTDIR="$pkgdir/" install -} -sha512sums="9b66412c9679d433608b1749f848bb4abd7cbc016ac53b527e251c8b80a0bc982f61694cbadd7d439b8dec8dc6f9f6eb7a188dc8d32951ca67a5882c24d6d23f hildon-home-0.3.72.tar.gz" diff --git a/maemo/hildon-theme-alpha/APKBUILD b/maemo/hildon-theme-alpha/APKBUILD deleted file mode 100644 index eacf49916..000000000 --- a/maemo/hildon-theme-alpha/APKBUILD +++ /dev/null @@ -1,26 +0,0 @@ -# Maintainer: Nikita Ukhrenkov -pkgname=hildon-theme-alpha -pkgver=9.4 -pkgrel=4 -pkgdesc="Nokia Nseries Theme for Hildon" -arch="noarch !armhf !armv7" -url="https://github.com/maemo-leste" -license="custom" -_source_deb="hildon-theme-alpha_9.4+0m5_all.deb" -source="http://repository.maemo.org/pool/fremantle/nokia-binaries/4bc37c7c77ebe90177c050b805a8dc79/nokia-binaries/h/$pkgname/${_source_deb}" -subpackages="$pkgname-doc" -options="!check" - -package() { - mkdir -p "$pkgdir" - cd "$pkgdir" - - ar x "$srcdir/$_source_deb" - tar xfz data.tar.gz - mkdir -p etc/hildon - ln -s /usr/share/themes/alpha etc/hildon/theme - rm control.tar.gz - rm data.tar.gz - rm debian-binary -} -sha512sums="de7a58200e4407707157d5ebbe7a2f43f97c76d4e442cb694a4387393407e6baac63384c0fe078d9a706f300b7edf8d392c37f2396815fa25845bebba61b8a0d hildon-theme-alpha_9.4+0m5_all.deb" diff --git a/maemo/hildon-thumbnail/APKBUILD b/maemo/hildon-thumbnail/APKBUILD deleted file mode 100644 index 33c3ac001..000000000 --- a/maemo/hildon-thumbnail/APKBUILD +++ /dev/null @@ -1,30 +0,0 @@ -# Maintainer: Nikita Ukhrenkov -pkgname=hildon-thumbnail -pkgver=3.1.2 -pkgrel=0 -pkgdesc="The Hildon Thumbnailer daemon" -arch="all !armhf !armv7" -url="https://github.com/maemo-leste/$pkgname" -license="GPL" -depends="libhildon" -makedepends="libhildon-dev libosso-dev sqlite-dev libpng-dev libexif-dev libjpeg-turbo-dev gstreamer-dev autoconf automake libtool" -source="$pkgname-$pkgver.tar.gz::https://github.com/maemo-leste/$pkgname/archive/$pkgver.tar.gz" -subpackages="$pkgname-dev" - -builddir="$srcdir/$pkgname-$pkgver" - -build() { - cd "$builddir" - ./autogen.sh - ./configure --prefix=/usr --sysconfdir=/etc - # Work around "No rule to make target '../daemon/libshared.la', needed by 'hildon-thumbnailerd'" - make -C daemon/ libshared.la -j1 - # Compilation fails with multiple threads - make -j1 -} - -package() { - cd "$builddir" - make DESTDIR="$pkgdir/" -j1 install -} -sha512sums="de3b94836762026a6acefee0ddcb0842b2c385aa9de2a6aef41ae6af9e23c8d490f777ae25f657373935aec76b0b080629ace5353af20968b6cc38764ca00949 hildon-thumbnail-3.1.2.tar.gz" diff --git a/maemo/icd2-osso-ic-headers/APKBUILD b/maemo/icd2-osso-ic-headers/APKBUILD deleted file mode 100644 index a83e7da32..000000000 --- a/maemo/icd2-osso-ic-headers/APKBUILD +++ /dev/null @@ -1,32 +0,0 @@ -# Contributor: Bart Ribbers -# Maintainer: Nikita Ukhrenkov -pkgname=icd2-osso-ic-headers -_pkgname=icd2-osso-ic-dev -pkgver=2.0.1 -pkgrel=0 -pkgdesc="Compatibility header files for osso-ic-headers" -url="https://github.com/maemo-leste/icd2-osso-ic-dev" -arch="noarch" -license="LGPL-2.1-only" -makedepends="libtool m4 automake autoconf dpkg-dev" -source="$pkgname-$pkgver.tar.gz::https://github.com/maemo-leste/icd2-osso-ic-dev/archive/$pkgver.tar.gz" -subpackages="$pkgname-dev" -options="!check" -builddir="$srcdir/icd2-osso-ic-dev-$pkgver" - -prepare() { - default_prepare - - ./autogen.sh -} - -build() { - ./configure --prefix=/usr --enable-doxygen - make -} - -package() { - DESTDIR="$pkgdir" make install -} - -sha512sums="ac6188069b0e6ff1e5efd4e83dd67e70d0b35362fe0e46c0b83ef9799b39662b6b79c96317effe398493d03f57551b110981e76547163e8f38c37c7962fa8247 icd2-osso-ic-headers-2.0.1.tar.gz" diff --git a/maemo/iphbd/APKBUILD b/maemo/iphbd/APKBUILD deleted file mode 100644 index 9cd68079e..000000000 --- a/maemo/iphbd/APKBUILD +++ /dev/null @@ -1,27 +0,0 @@ -# Maintainer: Nikita Ukhrenkov -pkgname=iphbd -pkgver=0.0.18 -pkgrel=2 -pkgdesc="IP heartbeat daemon" -arch="all !armhf !armv7" -url="https://github.com/maemo-leste/iphbd" -license="GPL2" -depends="dbus dbus-glib" -makedepends="autoconf automake libtool dbus-glib-dev" -subpackages="$pkgname-dev" -source="$pkgname-$pkgver.tar.gz::https://github.com/maemo-leste/iphbd/archive/$pkgver.tar.gz" - -builddir="$srcdir/iphbd-$pkgver" - -build() { - cd "$builddir" - ./autogen.sh - ./configure --prefix=/usr - make -} - -package() { - cd "$builddir" - make DESTDIR="$pkgdir/" install -} -sha512sums="ddf500be33892ec275444747da003bc5fea7bc2f4969bb7fde5626e5c0988d21362753eb02f256736f7aeadf09ded20fa211a7f91cd142259e34beb4b1a4540b iphbd-0.0.18.tar.gz" diff --git a/maemo/libcal/APKBUILD b/maemo/libcal/APKBUILD deleted file mode 100644 index 61acf78e3..000000000 --- a/maemo/libcal/APKBUILD +++ /dev/null @@ -1,21 +0,0 @@ -# Contributor: Bart Ribbers -# Maintainer: Nikita Ukhrenkov -pkgname=libcal -pkgver=0.3 -pkgrel=0 -pkgdesc="Interface for the configuration area" -arch="all !armhf !armv7" -url="https://github.com/maemo-leste/libcal" -license="LGPL-2.1-only" -makedepends="linux-headers" -source="$pkgname-$pkgver.tar.gz::https://github.com/maemo-leste/libcal/archive/$pkgver.tar.gz" -subpackages="$pkgname-dev" - -build() { - CFLAGS="$CFLAGS -D_GNU_SOURCE -fPIC" make -} - -package() { - DESTDIR="$pkgdir" make install -} -sha512sums="456f631356fcf6a550cb4b5239482ff865c32a64952d60cd8ab0430fc8d5d2adec9abf959bde14fff3bfe57394af46663610e190e7cc7b660cef1ff89e39251b libcal-0.3.tar.gz" diff --git a/maemo/libconic/APKBUILD b/maemo/libconic/APKBUILD deleted file mode 100644 index 8161e9cdb..000000000 --- a/maemo/libconic/APKBUILD +++ /dev/null @@ -1,31 +0,0 @@ -# Contributor: Bart Ribbers -# Maintainer: Nikita Ukhrenkov -pkgname=libconic -pkgver=0.24.1 -pkgrel=0 -pkgdesc="Internet connectivity library" -url="https://github.com/maemo-leste/libconic" -arch="all !armhf !armv7" -license="LGPL-2.1-only" -depends_dev="dbus-glib-dev gconf-dev icd2-osso-ic-headers-dev" -makedepends="$depends_dev autoconf automake libtool dpkg-dev glib-dev" -source="$pkgname-$pkgver.tar.gz::https://github.com/maemo-leste/libconic/archive/$pkgver.tar.gz" -subpackages="$pkgname-dev" -options="!check" - -prepare() { - default_prepare - - ./autogen.sh -} - -build() { - CFLAGS="$CFLAGS -Wno-error=deprecated-declarations" ./configure --prefix=/usr - make -} - -package() { - DESTDIR="$pkgdir" make install -} - -sha512sums="ba4aaf025262bf7aa6f7426736d06bc64b1da86f54274fd4b5fef5a829114486df83cd02f974ffbcf6c14913d580ac82eb4f8c09dafbcb0fe9408d11dcc329a3 libconic-0.24.1.tar.gz" diff --git a/maemo/libdevlock/APKBUILD b/maemo/libdevlock/APKBUILD deleted file mode 100644 index c71709e12..000000000 --- a/maemo/libdevlock/APKBUILD +++ /dev/null @@ -1,25 +0,0 @@ -# Contributor: Nikita Ukhrenkov -# Maintainer: Nikita Ukhrenkov -pkgname="libdevlock" -pkgver="1.0.9.2" -pkgrel=0 -pkgdesc="provides an API for manupulating device lock code stored in CAL" -url="https://github.com/maemo-leste/libdevlock" -arch="all !armhf !armv7" -license="LGPL-2.1-only" -depends_dev="libcal-dev" -makedepends="$depends_dev glib-dev gconf-dev" -source="libdevlock-$pkgver.tar.gz::https://github.com/maemo-leste/libdevlock/archive/$pkgver.tar.gz" -subpackages="$pkgname-dev" -options="!check suid" - -build() { - make -j1 -} - -package() { - DESTDIR="$pkgdir" make install - ln -s libdevlock.so.1.0.9 "$pkgdir"/usr/lib/libdevlock.so -} - -sha512sums="de29b84e8ca142293080feb4d120a52b4440d07a635e307bf8f3d6a7e839dcb3286d63cc2500d13a86972c2efbd2083c21c304cbab89d487b9bde4d6c13abafc libdevlock-1.0.9.2.tar.gz" diff --git a/maemo/libdsme/APKBUILD b/maemo/libdsme/APKBUILD deleted file mode 100644 index 89dbb2f7d..000000000 --- a/maemo/libdsme/APKBUILD +++ /dev/null @@ -1,24 +0,0 @@ -# Maintainer: Nikita Ukhrenkov -pkgname=libdsme -pkgver=0.60.31 -pkgrel=0 -pkgdesc="Libraries for programs that communicate with the Device State Management Entity" -arch="all !armhf !armv7" -url="https://github.com/maemo-leste/libdsme" -license="LGPL-2.1-only" -depends_dev="glib-dev" -makedepends="$depends_dev bash" -subpackages="$pkgname-dev" -source="$pkgname-$pkgver.tar.gz::https://github.com/maemo-leste/libdsme/archive/$pkgver.tar.gz - include.patch" - -build() { - make -} - -package() { - make DESTDIR="$pkgdir/" install -} - -sha512sums="68baad532f557519fe16257fdddb8787ae4bc82be19311bbcdca6290ef905236f571403c90c571a6dd302e55168a5fc8ab9f1928646653153d72cf99bd49789e libdsme-0.60.31.tar.gz -5a59eb4c4f0722702beb5a11c7deda25b56bf08380a135b7e1c22f74dd32dc2ae41a7512912e215ca25fd183de2186f3b65b58a4f8b8716a7dce341d304648d5 include.patch" diff --git a/maemo/libdsme/include.patch b/maemo/libdsme/include.patch deleted file mode 100644 index 4bf613c0a..000000000 --- a/maemo/libdsme/include.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/protocol.c b/protocol.c -index 789353e..d115fb1 100644 ---- a/protocol.c -+++ b/protocol.c -@@ -37,6 +37,7 @@ - #include - #include - #include -+#include - #include - #include - #include diff --git a/maemo/libhildon/APKBUILD b/maemo/libhildon/APKBUILD deleted file mode 100644 index 86a9fb81e..000000000 --- a/maemo/libhildon/APKBUILD +++ /dev/null @@ -1,29 +0,0 @@ -# Maintainer: Nikita Ukhrenkov -pkgname=libhildon -pkgver=2.2.25.3 -pkgrel=0 -pkgdesc="Application framework for Linux operating system mobile devices" -arch="all !armhf !armv7" -url="https://github.com/maemo-leste/libhildon" -license="LGPL-2.1-or-later" -depends="gtk+2.0-maemo maemo-l10n" -depends_dev="gtk+2.0-maemo-dev libcanberra-dev gconf-dev" -makedepends="$depends_dev autoconf automake libtool gtk-doc" -subpackages="$pkgname-dev" -source="$pkgname-$pkgver.tar.gz::https://github.com/maemo-leste/libhildon/archive/$pkgver.tar.gz - hildon-non-glibc.patch - fix-inline-function-problems.patch" - -build() { - ./autogen.sh --prefix=/usr - make -} - -package() { - make DESTDIR="$pkgdir/" install - # Prevent conflict with maemo-l10n - rm -rf "$pkgdir/usr/share/locale" -} -sha512sums="1e18c072929acc4dfed97fef5d4517c29ecef044ff4841895517a7dec643585a98d50084c2b2dbef3a66f42b4b2ee28017a7fa9320a32bb43dd5fb26e0ad5c0f libhildon-2.2.25.3.tar.gz -5cc6578d513794276ed46292de9ecb72400477ffafa560ebbef2028c214e1a7c8e371f5179941cbfcb1865d2fc2db71e4f50f81e95a5173f247ec4412e312d12 hildon-non-glibc.patch -7f46f856fd50ddd4cefce1d17af2714948923c26be95283319d4651adb4e19d0c760abe127d704b111b60f226a325fd7462d0623ff1b0e1e0bd4e0d03a90485a fix-inline-function-problems.patch" diff --git a/maemo/libhildon/fix-inline-function-problems.patch b/maemo/libhildon/fix-inline-function-problems.patch deleted file mode 100644 index 67d491453..000000000 --- a/maemo/libhildon/fix-inline-function-problems.patch +++ /dev/null @@ -1,151 +0,0 @@ -diff --git a/hildon/hildon-color-chooser.c b/hildon/hildon-color-chooser.c -index 1dd0293..ad7188d 100644 ---- a/hildon/hildon-color-chooser.c -+++ b/hildon/hildon-color-chooser.c -@@ -109,19 +109,19 @@ init_borders (GtkWidget *w, - GtkBorder *inner, - GtkBorder *outer); - --inline void -+void - inline_clip_to_alloc (void *s, - GtkAllocation *a); - --inline void -+void - inline_sub_times (GTimeVal *result, - GTimeVal *greater, - GTimeVal *lesser); - --inline void -+void - inline_limited_expose (HildonColorChooser *self); - --inline void -+void - inline_draw_hue_bar (GtkWidget *widget, - int x, - int y, -@@ -130,7 +130,7 @@ inline_draw_hue_bar (GtkWidget *widget, - int sy, - int sh); - --inline void -+void - inline_draw_hue_bar_dimmed (GtkWidget *widget, - int x, - int y, -@@ -139,28 +139,28 @@ inline_draw_hue_bar_dimmed (GtkWidget *widget, - int sy, - int sh); - --inline void -+void - inline_draw_sv_plane (HildonColorChooser *self, - int x, - int y, - int w, - int h); - --inline void -+void - inline_draw_sv_plane_dimmed (HildonColorChooser *self, - int x, - int y, - int w, - int h); - --inline void -+void - inline_draw_crosshair (unsigned char *buf, - int x, - int y, - int w, - int h); - --inline void -+void - inline_h2rgb (unsigned short hue, - unsigned long *rgb); - -@@ -462,7 +462,7 @@ hildon_color_chooser_unmap (GtkWidget *widget) - GTK_WIDGET_CLASS (parent_class)->unmap (widget); - } - --inline void -+void - inline_clip_to_alloc (void *s, - GtkAllocation *a) - { -@@ -574,7 +574,7 @@ hildon_color_chooser_expose (GtkWidget *widget, - } - - --inline void -+void - inline_sub_times (GTimeVal *result, - GTimeVal *greater, - GTimeVal *lesser) -@@ -588,7 +588,7 @@ inline_sub_times (GTimeVal *result, - } - } - --inline void -+void - inline_limited_expose (HildonColorChooser *sel) - { - GTimeVal curr_time, result; -@@ -849,7 +849,7 @@ hildon_color_chooser_set_color (HildonColorChooser *chooser, - g_signal_emit (chooser, color_chooser_signals[COLOR_CHANGED], 0); - } - --inline void -+void - inline_h2rgb (unsigned short hue, - unsigned long *rgb) - { -@@ -963,7 +963,7 @@ intern_h2rgb8 (unsigned short hue, - - /* optimization: do not ask hue for each round but have bilinear vectors */ - /* rethink: benefits from handling data 8 bit? (no shift round) */ --inline void -+void - inline_draw_hue_bar (GtkWidget *widget, - int x, - int y, -@@ -1024,7 +1024,7 @@ inline_draw_hue_bar (GtkWidget *widget, - g_free(buf); - } - --inline void -+void - inline_draw_hue_bar_dimmed (GtkWidget *widget, - int x, - int y, -@@ -1075,7 +1075,7 @@ inline_draw_hue_bar_dimmed (GtkWidget *widget, - gdk_draw_pixbuf (widget->parent->window, widget->style->fg_gc [0], priv->dimmed_bar, 0, 0, x, y, w, h, GDK_RGB_DITHER_NONE, 0, 0); - } - --inline void -+void - inline_draw_crosshair (unsigned char *buf, - int x, - int y, -@@ -1106,7 +1106,7 @@ inline_draw_crosshair (unsigned char *buf, - } - } - --inline void -+void - inline_draw_sv_plane (HildonColorChooser *sel, - int x, - int y, -@@ -1179,7 +1179,7 @@ inline_draw_sv_plane (HildonColorChooser *sel, - g_free(buf); - } - --inline void -+void - inline_draw_sv_plane_dimmed (HildonColorChooser *sel, - int x, - int y, diff --git a/maemo/libhildon/hildon-non-glibc.patch b/maemo/libhildon/hildon-non-glibc.patch deleted file mode 100644 index c9b9a2da7..000000000 --- a/maemo/libhildon/hildon-non-glibc.patch +++ /dev/null @@ -1,66 +0,0 @@ -diff --git a/configure.ac b/configure.ac -index 0410c83..4d2602f 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -74,6 +74,17 @@ AC_ARG_ENABLE(rebuilds, [ --disable-rebuilds disable all source autogenera - # is found, so autogenerated sources can be rebuilt - AC_CHECK_PROGS(PERL, perl5 perl) - -+# _NL_TIME_FIRST_WEEKDAY is an enum and not a define -+AC_MSG_CHECKING([for _NL_TIME_FIRST_WEEKDAY]) -+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], -+ [[nl_langinfo(_NL_TIME_FIRST_WEEKDAY);]])], -+ [langinfo_ok=yes], [langinfo_ok=no]) -+AC_MSG_RESULT([$langinfo_ok]) -+if test "$langinfo_ok" = "yes"; then -+ AC_DEFINE([HAVE__NL_TIME_FIRST_WEEKDAY], [1], -+ [Define if _NL_TIME_FIRST_WEEKDAY is available]) -+fi -+ - REBUILD=\# - if test "x$enable_rebuilds" = "xyes" && \ - test -n "$PERL" && \ -diff --git a/hildon/hildon-calendar.c b/hildon/hildon-calendar.c -index b460e50..3c88f4c 100644 ---- a/hildon/hildon-calendar.c -+++ b/hildon/hildon-calendar.c -@@ -986,6 +986,7 @@ hildon_calendar_init (HildonCalendar *calendar) - else if (strcmp (year_before, "calendar:MY") != 0) - g_warning ("Whoever translated calendar:MY did so wrongly.\n"); - #endif -+#ifdef HAVE__NL_TIME_FIRST_WEEKDAY - langinfo = nl_langinfo (_NL_TIME_FIRST_WEEKDAY); - first_weekday = langinfo[0]; - langinfo = nl_langinfo (_NL_TIME_WEEK_1STDAY); -@@ -1012,6 +1013,9 @@ hildon_calendar_init (HildonCalendar *calendar) - } - - private_data->week_start = (week_1stday + first_weekday - 1) % 7; -+#else -+ private_data->week_start = 0; -+#endif - - locales_init (private_data); - } -diff --git a/hildon/hildon-weekday-picker.c b/hildon/hildon-weekday-picker.c -index d357c91..e436940 100644 ---- a/hildon/hildon-weekday-picker.c -+++ b/hildon/hildon-weekday-picker.c -@@ -211,6 +211,7 @@ hildon_weekday_picker_init (HildonWeekdayPicker *picker) - - sgroup = gtk_size_group_new (GTK_SIZE_GROUP_BOTH); - -+#ifdef HAVE__NL_TIME_FIRST_WEEKDAY - /* Check our first weekday */ - day = *nl_langinfo (_NL_TIME_FIRST_WEEKDAY); - -@@ -218,6 +219,9 @@ hildon_weekday_picker_init (HildonWeekdayPicker *picker) - /* Shift the days by one. This is done because GDateWeekday - * starts with Monday(1) and langinfo's first day is Sunday */ - day--; -+#else -+ day = 1; -+#endif - - if (day < 1) - day = 7; diff --git a/maemo/libhildondesktop/APKBUILD b/maemo/libhildondesktop/APKBUILD deleted file mode 100644 index 047cd5930..000000000 --- a/maemo/libhildondesktop/APKBUILD +++ /dev/null @@ -1,33 +0,0 @@ -# Maintainer: Nikita Ukhrenkov -pkgname=libhildondesktop -pkgver=2.1.44 -pkgrel=0 -pkgdesc="Hildon Desktop library" -arch="all !armhf !armv7" -url="https://github.com/maemo-leste/libhildondesktop" -license="LGPL-2.1-only" -makedepends="autoconf automake libtool libhildon-dev iphbd-dev dbus-glib-dev" -subpackages="$pkgname-dev $pkgname-examples" -source=" - $pkgname-$pkgver.tar.gz::https://github.com/maemo-leste/libhildondesktop/archive/$pkgver.tar.gz - stop-deprecated-functions-from-breaking-compilation.patch -" - -build() { - ./autogen.sh --prefix=/usr CFLAGS="${CFLAGS} -Wno-error=unused-but-set-variable" - make -} - -package() { - make DESTDIR="$pkgdir/" install -} - -examples() { - pkgdesc="Hildon Desktop examples" - mkdir -p "$subpkgdir/usr/lib" - mv "$pkgdir/usr/lib/hildon-desktop" "$subpkgdir/usr/lib/" - mv "$pkgdir/usr/share" "$subpkgdir/usr/" -} - -sha512sums="53f85903e6619529bf98a051fcb508d7895076a4d06465059acc8c73849828b351d3c47c32e0c616bf320b8cbfc053f084e54efb4e7a71132857e9aabd65913e libhildondesktop-2.1.44.tar.gz -05f3c10ff2dcccd86ced633ec78593cd933aa7a53d2c8a0aca6a6e6ed5bf9c20bd87325ac22ec4bf536bfbeb247ae58ddc07cd1b2f6da7004a72f846e35dd3f2 stop-deprecated-functions-from-breaking-compilation.patch" diff --git a/maemo/libhildondesktop/stop-deprecated-functions-from-breaking-compilation.patch b/maemo/libhildondesktop/stop-deprecated-functions-from-breaking-compilation.patch deleted file mode 100644 index 9201f3d66..000000000 --- a/maemo/libhildondesktop/stop-deprecated-functions-from-breaking-compilation.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff --git a/configure.ac b/configure.ac -index 3d15e48..70fec1c 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -71,9 +71,9 @@ fi - - if test "x${hildon_use_instrumenting}" = "xyes" - then -- CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -Wmissing-declarations -Werror -Wno-format-extra-args -g -finstrument-functions" -+ CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -Wmissing-declarations -Wno-format-extra-args -g -finstrument-functions" - else -- CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -Wmissing-declarations -Werror -Wno-format-extra-args -DG_DISABLE_CAST_CHECKS" -+ CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -Wmissing-declarations -Wno-format-extra-args -DG_DISABLE_CAST_CHECKS" - fi - - AC_SUBST(CFLAGS) diff --git a/maemo/libhildonfm/APKBUILD b/maemo/libhildonfm/APKBUILD deleted file mode 100644 index f0bec3366..000000000 --- a/maemo/libhildonfm/APKBUILD +++ /dev/null @@ -1,28 +0,0 @@ -# Maintainer: Nikita Ukhrenkov -pkgname=libhildonfm -pkgver=2.28.22 -pkgrel=2 -pkgdesc="Hildon file management libraries" -arch="all !armhf !armv7" -url="https://github.com/maemo-leste/$pkgname" -license="GPL" -depends="libhildon" -makedepends="gconf-dev gtk-doc mce-headers libhildon-dev libpng-dev libosso-dev - hildon-thumbnail-dev libhildonmime-dev - autoconf automake m4 libtool" -source="$pkgname-$pkgver.tar.gz::https://github.com/maemo-leste/$pkgname/archive/$pkgver.tar.gz" -subpackages="$pkgname-dev" - -builddir="$srcdir/$pkgname-$pkgver" - -build() { - cd "$builddir" - ./autogen.sh --prefix=/usr - make -} - -package() { - cd "$builddir" - make DESTDIR="$pkgdir/" install -} -sha512sums="7462e3ded3a28eac811591665c7e345f77cb91ce26e65293a2810b74b9fa355b4346ab6947c25fe228556e1283fe1da5e281c87b6ba63fd22b1dd4e2327eee15 libhildonfm-2.28.22.tar.gz" diff --git a/maemo/libhildonmime/APKBUILD b/maemo/libhildonmime/APKBUILD deleted file mode 100644 index 79b8753c3..000000000 --- a/maemo/libhildonmime/APKBUILD +++ /dev/null @@ -1,21 +0,0 @@ -# Maintainer: Nikita Ukhrenkov -pkgname=libhildonmime -pkgver=3.0.3 -pkgrel=0 -pkgdesc="Hildon MIME library" -arch="all !armhf !armv7" -url="https://github.com/maemo-leste/libhildonmime" -license="LGPL-2.1-only" -makedepends="libtool automake autoconf glib-dev dbus-glib-dev libxml2-dev gtk-doc" -source="$pkgname-$pkgver.tar.gz::https://github.com/maemo-leste/$pkgname/archive/$pkgver.tar.gz" -subpackages="$pkgname-dev" - -build() { - ./autogen.sh --prefix=/usr CFLAGS="${CFLAGS} -Wno-error=unused-but-set-variable" - make -} - -package() { - make DESTDIR="$pkgdir/" install -} -sha512sums="b1c9aa8620352cb65e8604cef4766fc86fe6511748028e4201b963bbe49247f78f7b563153732536241e23d02980eb46925086d4da72a521bc9707a037ddfdbe libhildonmime-3.0.3.tar.gz" diff --git a/maemo/libmatchbox2/APKBUILD b/maemo/libmatchbox2/APKBUILD deleted file mode 100644 index 25efe85ca..000000000 --- a/maemo/libmatchbox2/APKBUILD +++ /dev/null @@ -1,28 +0,0 @@ -# Maintainer: Nikita Ukhrenkov -pkgname=libmatchbox2 -pkgver=0.2.96 -pkgrel=0 -pkgdesc="Library for Matchbox Project applications" -arch="all !armhf !armv7" -url="https://github.com/maemo-leste/libmatchbox2" -license="GPL-2.0-or-later" -depends="gtk+2.0-maemo clutter" -makedepends="autoconf automake libtool gtk+2.0-maemo-dev pango-dev clutter-dev libpng-dev" -subpackages="$pkgname-dev" -source="$pkgname-$pkgver.tar.gz::https://github.com/maemo-leste/libmatchbox2/archive/$pkgver.tar.gz" - -prepare() { - default_prepare - - autoreconf -fi -} - -build() { - ./configure --prefix=/usr --enable-png-theme --with-pango CFLAGS="${CFLAGS} -Wno-error=unused-result -Wno-error=deprecated-declarations" - make -} - -package() { - make DESTDIR="$pkgdir/" install -} -sha512sums="cc8d3b1cfe704ec6de38c574b23c0b0391191f0c5f0f3014877920fe099db3a96efcb8332cc7a9a700499e316e4090b11dd10d304efa3ff171a0b29ee7abbeb1 libmatchbox2-0.2.96.tar.gz" diff --git a/maemo/libosso/APKBUILD b/maemo/libosso/APKBUILD deleted file mode 100644 index 4234cc69c..000000000 --- a/maemo/libosso/APKBUILD +++ /dev/null @@ -1,24 +0,0 @@ -# Maintainer: Nikita Ukhrenkov -pkgname=libosso -pkgver=2.35 -pkgrel=0 -pkgdesc="Basic library for Maemo applications" -arch="all !armhf !armv7" -url="https://github.com/maemo-leste/libosso" -license="LGPL-2.1-only" -makedepends="autoconf automake libtool mce-headers dbus-glib-dev" -source="$pkgname-$pkgver.tar.gz::https://github.com/maemo-leste/libosso/archive/$pkgver.tar.gz - libosso-mem-musl.patch" -subpackages="$pkgname-dev" - -build() { - ./autogen.sh - ./configure --prefix=/usr --sysconfdir=/etc --enable-stderr-logging - make -} - -package() { - make DESTDIR="$pkgdir/" install -} -sha512sums="8f542e2cac593f2d4bbb7faba0b3d31ea88be07fefaa17ad77961dcb4e0fe2a9958fdf79e29e76bdbfd1b62c434c4a4018a26ec2da5a8e917a1de884d3b6892b libosso-2.35.tar.gz -cc4ea4ec285169ea848a8d2ca3c1a084b019c2ed93a39e2225389fffe893c0c5951ded49d4de4b13cf7d0e8fce884830b85d7382411a2973f132af8038106887 libosso-mem-musl.patch" diff --git a/maemo/libosso/libosso-mem-musl.patch b/maemo/libosso/libosso-mem-musl.patch deleted file mode 100644 index 7bfb1245d..000000000 --- a/maemo/libosso/libosso-mem-musl.patch +++ /dev/null @@ -1,52 +0,0 @@ -diff --git a/src/osso-mem.c b/src/osso-mem.c -index 17fd5e2..0c74e3e 100644 ---- a/src/osso-mem.c -+++ b/src/osso-mem.c -@@ -287,6 +287,7 @@ static void setup_sys_values(void) - } /* setup_sys_values */ - - -+#if defined(__GLIBC__) - /* ------------------------------------------------------------------------- * - * saw_malloc_hook - Malloc hook. Executed when osso_mem_saw_active is in - * place. Thread-safe (= slow in some cases). -@@ -337,7 +338,7 @@ static void* saw_malloc_hook(size_t size, const void* caller) - - return ptr; - } /* saw_malloc_hook */ -- -+#endif - - /* ========================================================================= * - * Public methods. -@@ -583,6 +584,7 @@ int osso_mem_saw_enable(size_t threshold, - /* If we're below the threshold, don't make things worse */ - if(threshold > 0 && available > threshold) - { -+#if defined(__GLIBC__) - const struct mallinfo mi = mallinfo(); - - THREAD_LOCK(); -@@ -602,6 +604,7 @@ int osso_mem_saw_enable(size_t threshold, - - ULOG_INFO_F("SAW hook installed: block size %u, maxheap %u (threshold %u)", - saw_max_block_size, saw_max_heap_size, threshold); -+#endif - - return 0; - } -@@ -621,12 +624,14 @@ int osso_mem_saw_enable(size_t threshold, - * ------------------------------------------------------------------------- */ - void osso_mem_saw_disable(void) - { -+#if defined(__GLIBC__) - THREAD_LOCK(); - if(saw_malloc_hook == __malloc_hook) - __malloc_hook = saw_old_malloc_hook; - THREAD_UNLOCK(); - - ULOG_INFO_F("SAW hook removed!"); -+#endif - } /* osso_mem_saw_disable */ - - diff --git a/maemo/maemo-l10n/APKBUILD b/maemo/maemo-l10n/APKBUILD deleted file mode 100644 index 9d299dcf5..000000000 --- a/maemo/maemo-l10n/APKBUILD +++ /dev/null @@ -1,295 +0,0 @@ -# Maintainer: Nikita Ukhrenkov -pkgname=maemo-l10n -pkgver=210 -pkgrel=2 -pkgdesc="Localization files for Maemo applications" -arch="noarch !armhf !armv7" -url="https://github.com/maemo-leste" -license="GPL" -_url="https://coderus.openrepos.net/n900mirror/downloads.maemo.nokia.com/fremantle/ssu/mr0/" -subpackages="$pkgname-doc" -source="${_url}/hildon-libs-l10n-cscz_6.0+r7987+0m5_all.deb - ${_url}/hildon-libs-l10n-dadk_6.0+r7987+0m5_all.deb - ${_url}/hildon-libs-l10n-dede_6.0+r7987+0m5_all.deb - ${_url}/hildon-libs-l10n-engb_6.0+r7987+0m5_all.deb - ${_url}/hildon-libs-l10n-enus_6.0+r7987+0m5_all.deb - ${_url}/hildon-libs-l10n-eses_6.0+r7987+0m5_all.deb - ${_url}/hildon-libs-l10n-esmx_6.0+r7987+0m5_all.deb - ${_url}/hildon-libs-l10n-fifi_6.0+r7987+0m5_all.deb - ${_url}/hildon-libs-l10n-frca_6.0+r7987+0m5_all.deb - ${_url}/hildon-libs-l10n-frfr_6.0+r7987+0m5_all.deb - ${_url}/hildon-libs-l10n-itit_6.0+r7987+0m5_all.deb - ${_url}/hildon-libs-l10n-nlnl_6.0+r7987+0m5_all.deb - ${_url}/hildon-libs-l10n-nono_6.0+r7987+0m5_all.deb - ${_url}/hildon-libs-l10n-plpl_6.0+r7987+0m5_all.deb - ${_url}/hildon-libs-l10n-ptpt_6.0+r7987+0m5_all.deb - ${_url}/hildon-libs-l10n-ruru_6.0+r7987+0m5_all.deb - ${_url}/hildon-libs-l10n-svse_6.0+r7987+0m5_all.deb - ${_url}/osso-system-lock-l10n-cscz_6.0+r7987+0m5_all.deb - ${_url}/osso-system-lock-l10n-dadk_6.0+r7987+0m5_all.deb - ${_url}/osso-system-lock-l10n-dede_6.0+r7987+0m5_all.deb - ${_url}/osso-system-lock-l10n-engb_6.0+r7987+0m5_all.deb - ${_url}/osso-system-lock-l10n-enus_6.0+r7987+0m5_all.deb - ${_url}/osso-system-lock-l10n-eses_6.0+r7987+0m5_all.deb - ${_url}/osso-system-lock-l10n-esmx_6.0+r7987+0m5_all.deb - ${_url}/osso-system-lock-l10n-fifi_6.0+r7987+0m5_all.deb - ${_url}/osso-system-lock-l10n-frca_6.0+r7987+0m5_all.deb - ${_url}/osso-system-lock-l10n-frfr_6.0+r7987+0m5_all.deb - ${_url}/osso-system-lock-l10n-itit_6.0+r7987+0m5_all.deb - ${_url}/osso-system-lock-l10n-nlnl_6.0+r7987+0m5_all.deb - ${_url}/osso-system-lock-l10n-nono_6.0+r7987+0m5_all.deb - ${_url}/osso-system-lock-l10n-plpl_6.0+r7987+0m5_all.deb - ${_url}/osso-system-lock-l10n-ptpt_6.0+r7987+0m5_all.deb - ${_url}/osso-system-lock-l10n-ruru_6.0+r7987+0m5_all.deb - ${_url}/osso-system-lock-l10n-svse_6.0+r7987+0m5_all.deb - ${_url}/hildon-fm-l10n-cscz_6.0+r7987+0m5_all.deb - ${_url}/hildon-fm-l10n-dadk_6.0+r7987+0m5_all.deb - ${_url}/hildon-fm-l10n-dede_6.0+r7987+0m5_all.deb - ${_url}/hildon-fm-l10n-engb_6.0+r7987+0m5_all.deb - ${_url}/hildon-fm-l10n-enus_6.0+r7987+0m5_all.deb - ${_url}/hildon-fm-l10n-eses_6.0+r7987+0m5_all.deb - ${_url}/hildon-fm-l10n-esmx_6.0+r7987+0m5_all.deb - ${_url}/hildon-fm-l10n-fifi_6.0+r7987+0m5_all.deb - ${_url}/hildon-fm-l10n-frca_6.0+r7987+0m5_all.deb - ${_url}/hildon-fm-l10n-frfr_6.0+r7987+0m5_all.deb - ${_url}/hildon-fm-l10n-itit_6.0+r7987+0m5_all.deb - ${_url}/hildon-fm-l10n-nlnl_6.0+r7987+0m5_all.deb - ${_url}/hildon-fm-l10n-nono_6.0+r7987+0m5_all.deb - ${_url}/hildon-fm-l10n-plpl_6.0+r7987+0m5_all.deb - ${_url}/hildon-fm-l10n-ptpt_6.0+r7987+0m5_all.deb - ${_url}/hildon-fm-l10n-ruru_6.0+r7987+0m5_all.deb - ${_url}/hildon-fm-l10n-svse_6.0+r7987+0m5_all.deb - ${_url}/osso-uri-l10n-cscz_6.0+r7987+0m5_all.deb - ${_url}/osso-uri-l10n-dadk_6.0+r7987+0m5_all.deb - ${_url}/osso-uri-l10n-dede_6.0+r7987+0m5_all.deb - ${_url}/osso-uri-l10n-engb_6.0+r7987+0m5_all.deb - ${_url}/osso-uri-l10n-enus_6.0+r7987+0m5_all.deb - ${_url}/osso-uri-l10n-eses_6.0+r7987+0m5_all.deb - ${_url}/osso-uri-l10n-esmx_6.0+r7987+0m5_all.deb - ${_url}/osso-uri-l10n-fifi_6.0+r7987+0m5_all.deb - ${_url}/osso-uri-l10n-frca_6.0+r7987+0m5_all.deb - ${_url}/osso-uri-l10n-frfr_6.0+r7987+0m5_all.deb - ${_url}/osso-uri-l10n-itit_6.0+r7987+0m5_all.deb - ${_url}/osso-uri-l10n-nlnl_6.0+r7987+0m5_all.deb - ${_url}/osso-uri-l10n-nono_6.0+r7987+0m5_all.deb - ${_url}/osso-uri-l10n-plpl_6.0+r7987+0m5_all.deb - ${_url}/osso-uri-l10n-ptpt_6.0+r7987+0m5_all.deb - ${_url}/osso-uri-l10n-ruru_6.0+r7987+0m5_all.deb - ${_url}/osso-uri-l10n-svse_6.0+r7987+0m5_all.deb - ${_url}/osso-countries-l10n-cscz_6.0+r7274+0m5_all.deb - ${_url}/osso-countries-l10n-dadk_6.0+r7274+0m5_all.deb - ${_url}/osso-countries-l10n-dede_6.0+r7274+0m5_all.deb - ${_url}/osso-countries-l10n-engb_6.0+r7274+0m5_all.deb - ${_url}/osso-countries-l10n-enus_6.0+r7274+0m5_all.deb - ${_url}/osso-countries-l10n-eses_6.0+r7274+0m5_all.deb - ${_url}/osso-countries-l10n-esmx_6.0+r7274+0m5_all.deb - ${_url}/osso-countries-l10n-fifi_6.0+r7274+0m5_all.deb - ${_url}/osso-countries-l10n-frca_6.0+r7274+0m5_all.deb - ${_url}/osso-countries-l10n-frfr_6.0+r7274+0m5_all.deb - ${_url}/osso-countries-l10n-itit_6.0+r7274+0m5_all.deb - ${_url}/osso-countries-l10n-nlnl_6.0+r7274+0m5_all.deb - ${_url}/osso-countries-l10n-nono_6.0+r7274+0m5_all.deb - ${_url}/osso-countries-l10n-plpl_6.0+r7274+0m5_all.deb - ${_url}/osso-countries-l10n-ptpt_6.0+r7274+0m5_all.deb - ${_url}/osso-countries-l10n-ruru_6.0+r7274+0m5_all.deb - ${_url}/osso-countries-l10n-svse_6.0+r7274+0m5_all.deb - ${_url}/osso-cities-l10n-cscz_6.0+r7336+0m5_all.deb - ${_url}/osso-cities-l10n-dadk_6.0+r7336+0m5_all.deb - ${_url}/osso-cities-l10n-dede_6.0+r7336+0m5_all.deb - ${_url}/osso-cities-l10n-engb_6.0+r7336+0m5_all.deb - ${_url}/osso-cities-l10n-enus_6.0+r7336+0m5_all.deb - ${_url}/osso-cities-l10n-eses_6.0+r7336+0m5_all.deb - ${_url}/osso-cities-l10n-esmx_6.0+r7336+0m5_all.deb - ${_url}/osso-cities-l10n-fifi_6.0+r7336+0m5_all.deb - ${_url}/osso-cities-l10n-frca_6.0+r7336+0m5_all.deb - ${_url}/osso-cities-l10n-frfr_6.0+r7336+0m5_all.deb - ${_url}/osso-cities-l10n-itit_6.0+r7336+0m5_all.deb - ${_url}/osso-cities-l10n-nlnl_6.0+r7336+0m5_all.deb - ${_url}/osso-cities-l10n-nono_6.0+r7336+0m5_all.deb - ${_url}/osso-cities-l10n-plpl_6.0+r7336+0m5_all.deb - ${_url}/osso-cities-l10n-ptpt_6.0+r7336+0m5_all.deb - ${_url}/osso-cities-l10n-ruru_6.0+r7336+0m5_all.deb - ${_url}/osso-cities-l10n-svse_6.0+r7336+0m5_all.deb - ${_url}/maemo-af-desktop-l10n-cscz_6.0+r7987+0m5_all.deb - ${_url}/maemo-af-desktop-l10n-dadk_6.0+r7987+0m5_all.deb - ${_url}/maemo-af-desktop-l10n-dede_6.0+r7987+0m5_all.deb - ${_url}/maemo-af-desktop-l10n-engb_6.0+r7987+0m5_all.deb - ${_url}/maemo-af-desktop-l10n-enus_6.0+r7987+0m5_all.deb - ${_url}/maemo-af-desktop-l10n-eses_6.0+r7987+0m5_all.deb - ${_url}/maemo-af-desktop-l10n-esmx_6.0+r7987+0m5_all.deb - ${_url}/maemo-af-desktop-l10n-fifi_6.0+r7987+0m5_all.deb - ${_url}/maemo-af-desktop-l10n-frca_6.0+r7987+0m5_all.deb - ${_url}/maemo-af-desktop-l10n-frfr_6.0+r7987+0m5_all.deb - ${_url}/maemo-af-desktop-l10n-itit_6.0+r7987+0m5_all.deb - ${_url}/maemo-af-desktop-l10n-nlnl_6.0+r7987+0m5_all.deb - ${_url}/maemo-af-desktop-l10n-nono_6.0+r7987+0m5_all.deb - ${_url}/maemo-af-desktop-l10n-plpl_6.0+r7987+0m5_all.deb - ${_url}/maemo-af-desktop-l10n-ptpt_6.0+r7987+0m5_all.deb - ${_url}/maemo-af-desktop-l10n-ruru_6.0+r7987+0m5_all.deb - ${_url}/maemo-af-desktop-l10n-svse_6.0+r7987+0m5_all.deb - ${_url}/ke-recv-l10n-cscz_6.0+r7987+0m5_all.deb - ${_url}/ke-recv-l10n-dadk_6.0+r7987+0m5_all.deb - ${_url}/ke-recv-l10n-dede_6.0+r7987+0m5_all.deb - ${_url}/ke-recv-l10n-engb_6.0+r7987+0m5_all.deb - ${_url}/ke-recv-l10n-enus_6.0+r7987+0m5_all.deb - ${_url}/ke-recv-l10n-eses_6.0+r7987+0m5_all.deb - ${_url}/ke-recv-l10n-esmx_6.0+r7987+0m5_all.deb - ${_url}/ke-recv-l10n-fifi_6.0+r7987+0m5_all.deb - ${_url}/ke-recv-l10n-frca_6.0+r7987+0m5_all.deb - ${_url}/ke-recv-l10n-frfr_6.0+r7987+0m5_all.deb - ${_url}/ke-recv-l10n-itit_6.0+r7987+0m5_all.deb - ${_url}/ke-recv-l10n-nlnl_6.0+r7987+0m5_all.deb - ${_url}/ke-recv-l10n-nono_6.0+r7987+0m5_all.deb - ${_url}/ke-recv-l10n-plpl_6.0+r7987+0m5_all.deb - ${_url}/ke-recv-l10n-ptpt_6.0+r7987+0m5_all.deb - ${_url}/ke-recv-l10n-ruru_6.0+r7987+0m5_all.deb - ${_url}/ke-recv-l10n-svse_6.0+r7987+0m5_all.deb" - -package() { - mkdir -p "$pkgdir" - cd "$pkgdir" - - for i in $source - do - filename="$(basename $i)" - ar x "$srcdir/$filename" - tar xfz data.tar.gz - rm control.tar.gz data.tar.gz debian-binary - done -} -sha512sums="973fe9e072aab0fac7d3b4da91001eeb124792476ec8d8e4b434d65b2ea660806c83d05c4614557a6a47a933abe137ff1048cceaeda984fd325a9dfb6a7bcd94 hildon-libs-l10n-cscz_6.0+r7987+0m5_all.deb -17aff62eeab1767fd0a37f3fcf4b8e95356c5671a6dca7ba6d16a4ae6f248d4d5e591ae00baf315a3b18923d983309cd49d227ab7f9a091bfeb9ac1b183148e5 hildon-libs-l10n-dadk_6.0+r7987+0m5_all.deb -cf017c862bda77b00e6408e4e7875970109f5c97274173fcd5f1f6106a736336f2863c1730f1e1155c08b7baec6070edcee130abab942d891aceb3dc42efc3f3 hildon-libs-l10n-dede_6.0+r7987+0m5_all.deb -761b657a04fd7b0d022a0753a5e1247997d9bdc07a63e20fa2f4ec5e96c599613ee1df03f56e0440ce3d48792a227b9e3bae7467c68f326423af75a1fe231497 hildon-libs-l10n-engb_6.0+r7987+0m5_all.deb -4cccc4b90831ffc2f9c4241ed97f1092c47dcf1f68498a766015fa842eda36a38c86122d334bcd18783a75bfb31d80c65451cc9fba50f9228dba57efc56f1dc4 hildon-libs-l10n-enus_6.0+r7987+0m5_all.deb -230dbc67eae7dd41ae69c40809d2bb9e38c694f657b6d6f167dd068de9fdfead4f80cb9c54a67ff905b5645ac10f9741e498c0debd2070465cdbd238834ad8fb hildon-libs-l10n-eses_6.0+r7987+0m5_all.deb -c6eaaabe1c3534275c3ac43321d3c9500f4692c3789213f9b7b1da57d87fd229c5fbaedb7f98256c93873b44588f27c3fb2f127faa94bb055e7af4312461fdcd hildon-libs-l10n-esmx_6.0+r7987+0m5_all.deb -ce86f720f0e6b9fd43dd34ffa840f9075740e671a164d5b57c62651c29e9bce377952e6bd44ad2c37197ac11976fbf15b4527da968e38cf275a216ecc0ce774f hildon-libs-l10n-fifi_6.0+r7987+0m5_all.deb -c27fdbcd28218b6ecf3d58b1ea58753310ebbf9275c18d22e0d3768c634bc83c275a47be9c4a8d867fcba94ad57cb27d182ca32a91461887dce593bfa55dc1e4 hildon-libs-l10n-frca_6.0+r7987+0m5_all.deb -4df80a24f57da36ba79f3026e7873470d15229e5ccc1282deb352dc99849a93f837e5219a2a6f72bbda5e809debb5b115b7c8f47caf9d532f9c36e048854e7d8 hildon-libs-l10n-frfr_6.0+r7987+0m5_all.deb -a0936f78f51c2d04bfad7b53f7929f6badd1b3d8779165ea6ee527ada41071a23dcf762737993fd477ba41a405f6fababe8781fab849b91ed70fe2aa3bf1add2 hildon-libs-l10n-itit_6.0+r7987+0m5_all.deb -e7784c9794c0f2694efe77314397fb4d07b7e65b7f0bee338686558192bf32d39f1f9b0c18526dd2ff319a4aab09868c441ecdb032926840484dba0115e5279b hildon-libs-l10n-nlnl_6.0+r7987+0m5_all.deb -f9cc53285f46bb15b6f42a4d792c21467853cbbb6b4a8179cb20d4a60d00d7017e26f0967e40287cbf762f100a66df44b02697a186226e2069fb61b34531a97e hildon-libs-l10n-nono_6.0+r7987+0m5_all.deb -8ba699b78e988cafd74031dfd8c2247ae6c79ee7aa8398dfd2e8ff9aab41220e5adb501b3c47d382b7c5e3fb89aaed71eb268d051e3018fa41ec508f25e5fe79 hildon-libs-l10n-plpl_6.0+r7987+0m5_all.deb -4d0c6ad836db27146b6e3ef74fdd1a7b3d779a911e212fedb18d3c8bce2ac8b0af9958d4142acc5a22e8334c2adae4caeb8824255d76cb53ed4af7036053b3a3 hildon-libs-l10n-ptpt_6.0+r7987+0m5_all.deb -9b113520614e0312f02be7d48ea09f358b0e3147df0855669d5bdd8dd64781a4cda2707330da3371a54971e2cbcbe52acb322dffbad0ca91ab952b68472f5788 hildon-libs-l10n-ruru_6.0+r7987+0m5_all.deb -ba5d0c0e9b3992e1bd9f9259e7f38c50545191af82024a0109d885259c4f5ca34e14c2669b63b0aa415269b4ef84d56e0ae3e2b050401890f0cba4d8314a2ba8 hildon-libs-l10n-svse_6.0+r7987+0m5_all.deb -939953407a36e33586939c9800d44d15a7878c0eca496f90d517d96705cd21d8f0828c2d2f8b950c148b97d65e8fef176464c6733488eff4d265a61ea07ff6ad osso-system-lock-l10n-cscz_6.0+r7987+0m5_all.deb -973b867e7d097a3fb3cb6c18d5b5a979246378f2149cfd22f63bd724bf4b8fd4a60094c7acb447717e5648427ef9f5b437f97bca2418a1008f627b55be31b3cd osso-system-lock-l10n-dadk_6.0+r7987+0m5_all.deb -f7230c1e058a54e391bed0d8033b7256ba6e54c3166225112a7a76910101116288b9476ee1ea0d221dd4b2879aa9ee4baafb7034e491f207a6cd7d0018021b90 osso-system-lock-l10n-dede_6.0+r7987+0m5_all.deb -ebfcabdb8b5180b99c9970a64be834a4c5c32b1d6f7eb3eb37650e699653c56f4973f5ba04a74355f530e4598d4ab2526c6dda72072ed1eb3ccf167086abfeb5 osso-system-lock-l10n-engb_6.0+r7987+0m5_all.deb -126783d582bb2585218c0b2e09585b9b43690d1c391d1c574f64851bf355f51d46da7e710d99f2fb0d6fc7d200e0cbde03517da5ffd4c4113659f8523792d4d0 osso-system-lock-l10n-enus_6.0+r7987+0m5_all.deb -9c8ad927b2ce9b31e806550ac19bfe0b3b4679b456d1dd034c22dba5bc07102882a169b9c2437a896491148edcc8946a11c248dd4d517678dc7aea285d4cedc0 osso-system-lock-l10n-eses_6.0+r7987+0m5_all.deb -50a50ce435c930f20341fbc46fc927641708e253224a3c5b0201d350c36b3aaf73b5d3fa59abbad4b5652b0f0d290896cd491d5cf72f24a28ed0ffaab3de19c2 osso-system-lock-l10n-esmx_6.0+r7987+0m5_all.deb -8e08ed32f1b4f043ade1952cb70016d756ba44dd21eaaa68e4cac8aebf3884419b337a46ce6a87e144de7e9fd553fab216fad80b762ca99847cd587a6cb0a81e osso-system-lock-l10n-fifi_6.0+r7987+0m5_all.deb -f873ed441c1e43c2f95fdb032d4eb43756db854e211e7c82e873b36ab0f84a41d70097ba69e9fc54a93dd2880718253a326f9e108f772b18b2ebe35c4b5360aa osso-system-lock-l10n-frca_6.0+r7987+0m5_all.deb -0f7365a37f2d2afe3de64304e4804f2ba4bd4bbbf19731289f46519f30fe088db00cb6f2efe9c177e5c42f22f7e03cd95a58679f8423d26a5072d8e57807d557 osso-system-lock-l10n-frfr_6.0+r7987+0m5_all.deb -94ac522b20f731d665f3097f0eb6f316f7d183fbda9cc43a7a89d8dbb721cc81998a2daef6afb2617a39fc92585af23a476a18f5d6b0bf60af7ce70623a4f2d0 osso-system-lock-l10n-itit_6.0+r7987+0m5_all.deb -ca5ede4aad5b20c14cb0e285b889b7d4a6c437ba6a375bc6cd1e8c57c1bca2423bea5e4e5eaf49d48df50b14704791b0306ea931e7fca898563f5fdcbd491fdf osso-system-lock-l10n-nlnl_6.0+r7987+0m5_all.deb -7716135c18ba94ce4834e6ba4100e9b144ab6d7bb9c065b971ec7c9fcd8107bf3faffe5ba091d47cff60b13ab142acc90139f04e3379345f83017b157f9735fb osso-system-lock-l10n-nono_6.0+r7987+0m5_all.deb -bec7a537586c3a5ca06a8bf60d05d3f8f6c9b2ea5720fc5136a1c68fe1bb15e79fe903af8dd1f569ebbbea05c165764bee9a9d6d7ac300a985378cd55b7f9218 osso-system-lock-l10n-plpl_6.0+r7987+0m5_all.deb -59b8df7ed3ed64e1b0c6606f054ae15faaaa80e31126de46338a56002675b82c677615dbe8260fc54747007d996f18ba7a002a0aa5d12f4554ee3722c06e8f2c osso-system-lock-l10n-ptpt_6.0+r7987+0m5_all.deb -824ab69c0f0c4ed8f676bee296aa283008a954de8a80c3273614181af481eb82bbd9c7f19fc4853cce0d448239f0c7920b970a77fa9ea36678401d7143396fd8 osso-system-lock-l10n-ruru_6.0+r7987+0m5_all.deb -fa4c5f1bd8ede6b3351a40c47b73b8f3b2886fa5e4bccfbff259f8e92e9823fdd469ea91695624cc6b92e37bc5b50fb875bcd0c1b84a72b3d4cbf9821e2b56c8 osso-system-lock-l10n-svse_6.0+r7987+0m5_all.deb -d267bbfdae390ba2e02a4bf0b5f4321a4102afc8fefbcd4c63ed97b87e062816d6e0b9923f2957c99c762bbd1a97d572eee5a9d9840f3fba8359b6d2c3031688 hildon-fm-l10n-cscz_6.0+r7987+0m5_all.deb -695bb1c432443f71937f40215f88f9c572cd702dd9954ae4cecb6659a9292ab0a37fee301ed73e5ebd205fdf6d0cece4ec9e0908bf914e00c06de2fb54806673 hildon-fm-l10n-dadk_6.0+r7987+0m5_all.deb -3e195ee528896e2ba6597abd388a1d876273ce4273f0cbb0aa8f3706aa7d4f006987eabc942d6b333cdb2cca8f0e2b2c365f8cc8a55bc5f955b09f59cd9202e5 hildon-fm-l10n-dede_6.0+r7987+0m5_all.deb -d06beba3a27ebeb35a875801bba45b8d69ed355293f05db1f388da7fed7e417a33bf9e4e1f24295c077f59c8dba473f7ee42d8cba5ed070c002c0e5a9179c092 hildon-fm-l10n-engb_6.0+r7987+0m5_all.deb -8d74683dc9c76aec42878b1b2a9ef5cb2120c92140b71c52a3d595f6d17bf6bcf53f4deed4f6f276a55e25a405a279319f91e841ac7010c214ca8940959728fe hildon-fm-l10n-enus_6.0+r7987+0m5_all.deb -98c3c07a1a9083aad367fc93d23198062fff6d88d337c54b65e2030868f65cc7e79613a15e819ff8f5e52d0d4ce27fabea48bacedaab9f7cf69a6c5bba7dacac hildon-fm-l10n-eses_6.0+r7987+0m5_all.deb -eb2fb22eca825b5893a5a402a5ddd41df1ebc12157469b2fb3c6a2b03b4d16b7d25a0bd59fffb1d34f5d29ab8e9b85156fc69869f411d6c78a8bbc1674afbb83 hildon-fm-l10n-esmx_6.0+r7987+0m5_all.deb -a54261ed201f6d218fe56faf93fa304ef4cdbd753e8b13963cd6ecf5825b39147eb5b7332361b5bbcf03f200b9acbbf35972d9a2089227963bb58e7197c7ee3c hildon-fm-l10n-fifi_6.0+r7987+0m5_all.deb -f749c3e67cdb1ed62b6f00a8b9ba342e73185621a15af1ab079e404e81cf94340c66b2ee1fc7e0b5ecf6a33b2d5a64594c4e471658366426c2a724e532c7c902 hildon-fm-l10n-frca_6.0+r7987+0m5_all.deb -beae428b2dd6168c3865db48fb1cf6af0dd0b85ced35dbee2e4c57927bb4faec118de5da23c71b2e17873adcd58dda0778282d5171e8da55ccf40a140d48b592 hildon-fm-l10n-frfr_6.0+r7987+0m5_all.deb -553afe1322f5ccdf94247647a070a5730f78f476f91b75b79a36be8129c3748a83b73354a3022fa45b3909af67ae278c98bf2e93b799ae89f9ad8bf36daeb07c hildon-fm-l10n-itit_6.0+r7987+0m5_all.deb -f910ccf80e8cc0ebbea6e83eae5ffba702d37bdf5a6365ccc6d22f3fa912cc76a58f8ce2e0461f84bc3d334688f8cd240d22617c552fb8b228b3a30734f6e087 hildon-fm-l10n-nlnl_6.0+r7987+0m5_all.deb -939d2b2b649612684faf8a1837227ca45579079e9bb7cef9a576e4ed12c957d011ff6dd78dd065ecfee9d364125dd0704a98950bfe08a9427de7d7cd395aa0ae hildon-fm-l10n-nono_6.0+r7987+0m5_all.deb -d40681ed61f580d81450e8b60a3e80f2848e0d263287f38d886c6f45c64777f2f0acb5818f767873fbd087284d54aba5e69020415e120184759add1fe899aef7 hildon-fm-l10n-plpl_6.0+r7987+0m5_all.deb -212dbb5c672c3f8d208749e8befce14100e2607cab12e946a9f0279e969ea7e6b81f4e7b5f64f6e88e3fa732a6b4d0dd28270306f40b853952603fd7c3f77d48 hildon-fm-l10n-ptpt_6.0+r7987+0m5_all.deb -cc3d711b7aa8d58bfc5c31d9bef5128b8ec44c9092cee0adf5340d40e2242e313d02c2b4b60a2aaa5e4e30fe644064a4955891f2e25ab9716a04fe6568c6e479 hildon-fm-l10n-ruru_6.0+r7987+0m5_all.deb -d35ebd66e6ab960b7c88a5b69a517d65176c6b401ca029836e5b89383090868baaf6d3208062a717c754b67c3c500b32acd8fc0b0b6d03665e587488acfe68c6 hildon-fm-l10n-svse_6.0+r7987+0m5_all.deb -f6d5a841ae2d4edbb5954a5a54e9315ab2709bb063e5dd0b689bd5ca20b69b774026c14deb6c1eb0be79e9c485eae8707cfbac52bae82be11d4b0819ec05e5d9 osso-uri-l10n-cscz_6.0+r7987+0m5_all.deb -5f29fdb1e5f7c82f1ff6e0adc89a1da75d700f68e0fc84c2a7e0d8018ac51e5be04a4072351bb51252816e6f552142d25cf58cc1f4a23b2b2b30c28906d69e5d osso-uri-l10n-dadk_6.0+r7987+0m5_all.deb -b7266aaa7c2a7e954b66809b718ae84c7c966c8167b6de28d2950fa8fbf6a6d3fa65b2a5bc69ea3a70a003602f21181d363c9eeecf2198bebffceb05f1f7a2f2 osso-uri-l10n-dede_6.0+r7987+0m5_all.deb -3ae0f6cf46c346fecaae738e0df686519de46fefc0ac7e40fd8cc36c4a11639a3d4d96284e05d52480a08afc5a1b2ea458f267a5050011630ab0d691b9f51d06 osso-uri-l10n-engb_6.0+r7987+0m5_all.deb -eef0d8a29021f2f9a039f4c5f31cc182b8c62b4dcf9753262b0de16e549f8cc96a247901580e615a4bcd3e234cfb91e77b7ce064f0bf5d4d47306b68099a8755 osso-uri-l10n-enus_6.0+r7987+0m5_all.deb -44fedc480688fd980a0966445191b94aec6f9fb103772a9db6ac4d3a0da01891909214cbbb04ab8a694d64c6e64ceaec4d6bee49341bc8e83a1f9d264b747328 osso-uri-l10n-eses_6.0+r7987+0m5_all.deb -f4525790e1e37dbbf4230697af2c87f132970fd99b474f47812553dce9e1312b01abd5e45cc12c992c782e3da6fc4a883797acb9c13c5506574ea68013b6609e osso-uri-l10n-esmx_6.0+r7987+0m5_all.deb -6c000dc9b9d0cb89f1722ebf0dff0a7aa9bfcd1efa0ccb58480d9d71ee17e4d6f25026b49ca4b605d51dfbdd2d8d935921ac714504723f3078b82c8d9368f3e8 osso-uri-l10n-fifi_6.0+r7987+0m5_all.deb -8765d7e637a4e2de490f2fea5024099b54d7dd225970d6484f7bb54260989555fc7119fadbe1f09e4c5e90479d0c685cbe2e5d468577f2b5da704ac02acde704 osso-uri-l10n-frca_6.0+r7987+0m5_all.deb -093aacbae93aff20afbe2879e2dcff71efc0263fdf8ce3b0bd6442994844440a5072808dc6b0db46fce6c5a49485424da1b97224a1c63588bbd50424e1a7c7a5 osso-uri-l10n-frfr_6.0+r7987+0m5_all.deb -2d17ccec45b7d3455754c24731bd7c625d25b535e6246014ef236fa4ff9cd0e9585768655cbe81615b97b1de41c51cc41f327d6f9635b24f00c43a76b8bd6f43 osso-uri-l10n-itit_6.0+r7987+0m5_all.deb -b935d5a79ac6d9ac092b717aed56d73538e8e4213c2b5bd422f621f50dd5cd99839647b06b2b7806c6f841dfc8637b0bbaba50db840088627c118770c66229ef osso-uri-l10n-nlnl_6.0+r7987+0m5_all.deb -83c48e225f154a2632c05bbe04479f01475f55271cfa49f710fdc5a1dc14fb00dc41574634103ce1b676bc072c9959aa735fdd7a80a36ade59c84d41a4b48cf1 osso-uri-l10n-nono_6.0+r7987+0m5_all.deb -f1ff50332321482b44484ec21452db206098a945363621a66b6da2798ebad8df3bf5d283105b1580834b6a06191cc2cc852561ee52257b58d0f808adaba94f25 osso-uri-l10n-plpl_6.0+r7987+0m5_all.deb -788dd68ba1dbfed34e6ff44dae13db8977c981beb06505260cd9b4376083d19fd71d928fb49dd865ba4336450fa201574fedb061d77be933dffb585af61cc378 osso-uri-l10n-ptpt_6.0+r7987+0m5_all.deb -76b1bdf6120e4e9bc1f6182fd299447701e960b8aa2ee8067d17e8c1fdc0480d4c2376ca6bce13de84f8356aa2c5c3079c448c150a6c184619081563e06a5262 osso-uri-l10n-ruru_6.0+r7987+0m5_all.deb -1dfeb388277c48b187f4b0447bb4116ba6d5fde46b0192afcb65c95642ef6446f8c3d7c518c2ccfe61894a0f331f04e3ba412dc8167da141fa70a6a72a4b63c7 osso-uri-l10n-svse_6.0+r7987+0m5_all.deb -671c0e7c91e52f996d129d3c7e30e50b8aee0e845aada4514ca2952a29e916822a8b7aec7de066c2091a90f2d52af67d003effe7ea6180886b48265b66a63937 osso-countries-l10n-cscz_6.0+r7274+0m5_all.deb -b26d2aa3e21ae60095e9b383fbb5d6e78c27650de140c82a532add35cf89c186fd04f34d375656a27681e89386c5308e13fa333b79b3188d2d1e92171d9ad020 osso-countries-l10n-dadk_6.0+r7274+0m5_all.deb -c3083167602741378401f77325ca93b712290cfe9237fb29c3dbb01038d2d27511cb2e5b20c60bfbcdecb734e94dc211e8d3c52c17df3a0b5a9611dd3bfcfd09 osso-countries-l10n-dede_6.0+r7274+0m5_all.deb -0103fd17a5c260f019ee4b41b0241fced5891040072a04bd404250d927fe510ab2e4cb60a608e5fd44eafe3d29585c02402ab79733bcf8c5f3ff8056b041350e osso-countries-l10n-engb_6.0+r7274+0m5_all.deb -2488fc9ad11414fbf8f411cb09e003488e71f0378a8d77785a8e5f6152dd6ef95e61e1a9f912efdb04b884ef94fbf0a0543c0adca2f6aedc39cb7279baf1e4d1 osso-countries-l10n-enus_6.0+r7274+0m5_all.deb -83a1a079e7ef0bedae9bee561d21727b8ec955217ad89ab1e6aca1cb8d522eb95adac3c8c7211821da1a888a2342718ec48d1e6158e741662bece1326840d852 osso-countries-l10n-eses_6.0+r7274+0m5_all.deb -c7e95ba5cf15967c80a4fdff9533086363a2a05577a4c6985cd75e48348bedb5a97ba88bba8287c6b9534f9e82fa8431b6a1ad942a0b69d65e3da32681085ebe osso-countries-l10n-esmx_6.0+r7274+0m5_all.deb -0cdd8cd5f9c5acee518ce68999423e04f96cd9728ce7d350d85fd3fdf1d5c9de5d6abd5eb446e62916209b6ac1588bdad0906a4879b95cb286271fd87ddcb32a osso-countries-l10n-fifi_6.0+r7274+0m5_all.deb -b4e0fed33161c05b22a1417d613fb836c6995c6f0ba76df9e93d457160408f2e5bb035d91563c7c7d9ae0b9a7929c91a05ac9c94a061314dba6b7609ac2c056b osso-countries-l10n-frca_6.0+r7274+0m5_all.deb -425d2afbe5822696548db70846cb441a736e96ada569b567cf19e4fdfc9911d0b8289e982ba758ead0ec3510da107ae6f292e2c4be7043394659d2d594152c7d osso-countries-l10n-frfr_6.0+r7274+0m5_all.deb -7c3c251d3fc2419da32b299be6d20c989900a5f13c2979657b6bf3a267aaa8cf5b64361ac3998e5f48fe2549f5057d00e8eb22e55b090cbae5460f8d541f9a4b osso-countries-l10n-itit_6.0+r7274+0m5_all.deb -31e58f30235ed2a447705141bb8300fc5f3b776e867cfba64a3116aae5e64fd5bc6b22e32440e999b2504c55752e76dcdce58fff124e87512b8211a54b0c5694 osso-countries-l10n-nlnl_6.0+r7274+0m5_all.deb -9e44aa3a5da71a000739e93e1c0084a6e8ce5bd9860778146614069caeb24932a7a7e0f182b93c1083e02956368a5d88e2c26c098fe52082a723422263fb5f61 osso-countries-l10n-nono_6.0+r7274+0m5_all.deb -e06c2c87be6037d9c2be6bc81689bbf3b0c3b4201037602396c62ef4d0f6276812e793658b0383ab2cc7c2f926ee72aceb5f9a745a9569725ddbc2a9d4e2031d osso-countries-l10n-plpl_6.0+r7274+0m5_all.deb -2cec46a882d5089ed4d825bfece04dd91993ae6ca02764b8edd3b2a750794345bde8a70e6ea4c63eed319515e78e14a19452d17e4a2def9e12f145133d81c0c6 osso-countries-l10n-ptpt_6.0+r7274+0m5_all.deb -ef6b105a911cccdb06ea16f30f90ab925fa73d909b62c829139829144db3cc249c669f7f264374675d914802e754bf4be12ae019a9e02300dd594d5e6a13d35b osso-countries-l10n-ruru_6.0+r7274+0m5_all.deb -ed07a4f301cc44efd00b4704d261296d43141c36c6d320dec8447a896348b7aeeda6ca32300a275e287a4c395d77ecd960119a7e29367b5504a75aea452581b3 osso-countries-l10n-svse_6.0+r7274+0m5_all.deb -6d56b55ca00532970144a8c377a3bf2e052f7f8ef6e50712c89b3b9daf9ebb5f9372938ed33aae864c08875adb886e2445aac8708d32cc1b86c914014ba1d9ae osso-cities-l10n-cscz_6.0+r7336+0m5_all.deb -2cc2a1483bd669a760f4dc5321b87ed42ccf4a6cedac535f81199d6a5b852b277922e419aaba9296baa780eb134a8ab93742e9f6960693ed7cef1e401e84a3c0 osso-cities-l10n-dadk_6.0+r7336+0m5_all.deb -0ff558e69570a0faba1065b0c71452afe2a59bfc4ad3efef9c475d6c6b995e69e5b535a1ed37b789abfe9b01be9e211c5e5d335810a985444de503b5101f6e89 osso-cities-l10n-dede_6.0+r7336+0m5_all.deb -c4517a69d9bd02ebd88f7051645a362027cf87400b59418becd0392b6005a2430a3bd42b8edce49fd467a94313056c92166e47ed92ef08ec7f0896203732bbd1 osso-cities-l10n-engb_6.0+r7336+0m5_all.deb -ba7b03101b72097258218d01be4e477bd83b23ab054ff1cfe734d2b9942428d6d5581a9202f8fc009b169a44c01ec1113fadb43b6d6085b707a9902138e91d51 osso-cities-l10n-enus_6.0+r7336+0m5_all.deb -ef96a397e1f60fa66f8e62af38daafd77511ad260764d987d259912b20494f16e2ecc261ce30da76d1bec27d7c65cb0ab7178fb78a33dd43b1c982c4c330c264 osso-cities-l10n-eses_6.0+r7336+0m5_all.deb -e9a155019d759eb517d63c78eec5a8c82737d3bc557a0fb766d796b420f2a45538081a3f077e6f0f4d36bc27fb57d9e106c17fa07f7427aae1dc7f3e8c22d24c osso-cities-l10n-esmx_6.0+r7336+0m5_all.deb -1900d32166798bd7eda061bb9b1a24b306eeba5ed25499d3b9b9a22193ccadcc83642c95775a79e853ebd2d463359c881ca0b1aeb197e714a27688442726a2f4 osso-cities-l10n-fifi_6.0+r7336+0m5_all.deb -477e71a4dc9ccf7f3a1de3725eec62c5787c8e2a94ac29e768c6b96ca3e1d4c7804c584568c43690fea7ab14b7cb0ee8d7e7a8e56054b852613bc6f44f0f499d osso-cities-l10n-frca_6.0+r7336+0m5_all.deb -3053af2729c841ec46b6760df45604fd15a3c602001c7430bd1e0e593b72a3dbe36f57ce31d6dd8d434efb50c42b0aa91725a34c618e830ecddd9f62b21e79b2 osso-cities-l10n-frfr_6.0+r7336+0m5_all.deb -916799a160ffe0914bdb8a697dbf1c1e42951f0c77577b7571bb6789fbdadfd6897b1409654658a618875738e85e5197b4f230df0f45faffea5b2b7a0d47ad38 osso-cities-l10n-itit_6.0+r7336+0m5_all.deb -d3c2b27f34e22ac56ee97edafb8fdca1ceb95ddccb386480bf67b6a61482bcf532c0c4218360d9a65f0d7fc649717b00b84e02e8adfb563d2f4bc550968553f1 osso-cities-l10n-nlnl_6.0+r7336+0m5_all.deb -c40976be47bb289bf6ba2afc99969fac81acaa72b8f34d977b03aea9bbf647066637ba467310bfcbafc7ff476616068ca849ab5091afbc9fae1f05c6e0491cc5 osso-cities-l10n-nono_6.0+r7336+0m5_all.deb -a2b944c5ec862dfc5fec9e4aa6d0b822943aba54ee38eb18e0dd097368cb52a3a60f45cb12cc0f62ebb9f612053ae29ab39f0a1e0def4f4df21d067e31a14f8d osso-cities-l10n-plpl_6.0+r7336+0m5_all.deb -d3ff9af844a232e3a50b65b5d902442c1737dece5021db912b85a5a0da6936bbb9fd3f8886f35b19a0ec05621a4cec5ac22942ebb1b66cd176e7e6f5998f9fcd osso-cities-l10n-ptpt_6.0+r7336+0m5_all.deb -2c2aa6bcd97354ef39fcf2c443e996fee01287b0507efe4234830da9b8e463b0175000015da4d56cdbcb4bab0990c3f1d6bf16e033ef662010d930a6c030104f osso-cities-l10n-ruru_6.0+r7336+0m5_all.deb -d46c274deb57a0e74a0ab88d4f6adf1f0fe2011acfeb7d6067fb070d289737a7b9645999ef665913433b675d541400f2d9f6261a372e57dc987c64168c315792 osso-cities-l10n-svse_6.0+r7336+0m5_all.deb -7546145e85cdc1d7e75adbe0d75d2aa26fe377e44f43132c609c91df4940ff43be4a2031652efcd4afac5a930d8271a9baee68d933c8a71a10835e69a78c5925 maemo-af-desktop-l10n-cscz_6.0+r7987+0m5_all.deb -0de65654691cb77d3421a5b45c3e2cd4371dc1f93a9760e531158ea5e0dd648ce35a3830d75b85673b3611a9d925c48bc9e3b391d5a41c4a18fa0fe795e4db8f maemo-af-desktop-l10n-dadk_6.0+r7987+0m5_all.deb -07885c64c41aab1b0772c9d4f94b8fec42f7d3b37ac4e48917b9c3d8c3a78b1804e7cfe72fe88106de7d473b381f3fbae7f7f3f5e8cd004cda9f1b42c1c213c0 maemo-af-desktop-l10n-dede_6.0+r7987+0m5_all.deb -13585b161e495a49d05caef78820dfb525a933456cbb1b47878ca7277b289c840b1798b54f3820dcd3c3d2fef3e116e1641f4b5285e64dc1720e8f0bd1c720cb maemo-af-desktop-l10n-engb_6.0+r7987+0m5_all.deb -df9cce67940248d4df3b2f37e3042d133b193c9e3ba1f8f5373e4e7c137292e81d15f91137dbedf4709c7ad0f3cd47e2acfd51726e595fdf7b006241635c116a maemo-af-desktop-l10n-enus_6.0+r7987+0m5_all.deb -01d71a40391135a0d209c5ce20834102efe59809de1602737f33fc0c6a0f41ad0b53f8da0861cda70d04646ee3d56e7cb47818edb834ab23802355ad1f428c0f maemo-af-desktop-l10n-eses_6.0+r7987+0m5_all.deb -3fc98d2059e6bf80ca783ce233308d1970c7ff3b2bad2e6d9e54e0cdfe4e2fc301e6af5d41c6ff9475db05cddf6929a5270ea0ad5e84512b2170faf82d629395 maemo-af-desktop-l10n-esmx_6.0+r7987+0m5_all.deb -a5035ad8f7166c99ed585b3f146e60f0531c6f2f416f1930cd9af7b556e1a1258d218cf05aa101d204d9b950d50fd5466f1f09758fea30112f85229e9875b763 maemo-af-desktop-l10n-fifi_6.0+r7987+0m5_all.deb -ebab661c36de5b089b119f93b42f28d6fc8942f728721a5d298db7b69c0d9972625189d4815192ccd452ba0353053ef36de71ef9aaff48815e1242beab7db3b4 maemo-af-desktop-l10n-frca_6.0+r7987+0m5_all.deb -95ec85f0e8783803c31d4f0b9f8572cd71de5ffa04a077aa4c6a232067829260fb39817d2b7d4501362df0207b4913640003b618507b56105d7aa8d6d4a98e51 maemo-af-desktop-l10n-frfr_6.0+r7987+0m5_all.deb -6326993219cf8df98be8a771168018a61cd050678dc8d84c81bd37484566b79f3a88dfc7fd5232d5d744ba70f6312903a69a7403fdb53def63cb9235768fde40 maemo-af-desktop-l10n-itit_6.0+r7987+0m5_all.deb -77f99bf89fa6f864ebf71abb678cb0d285d0387f3d8d495ff432ae43a61413d2c1c11e085d125783af0cdedc29dded7aea563b7e536757711b53186a1dd962d8 maemo-af-desktop-l10n-nlnl_6.0+r7987+0m5_all.deb -75b8df2a6eae9d97f4d8cf751f271e65d5895eecfeee60798b58f6562c3b13bff5cce4e0d849ce80f64188c27614fb3fa313fac1b06e83076aa81370a4318229 maemo-af-desktop-l10n-nono_6.0+r7987+0m5_all.deb -9f5d302861b510f4007a1776f6de99496036bd28e98ee01e5d0fba1bf5c34014311a56d04cc3f3d79eece04000855d2396f797b353158a7442b9abb50d457728 maemo-af-desktop-l10n-plpl_6.0+r7987+0m5_all.deb -1aa39add6b9bf9957ee89c0d3969d19c0b9e85dcd873add7c32db86acbba2211aa2692badabed84974adff5702c7423bd79c82bce650d321a6bc5c813cb50630 maemo-af-desktop-l10n-ptpt_6.0+r7987+0m5_all.deb -95498b158c46c9fb9c5d33959e302676b79aa09a5b62b42d70369fcbc6bee1063cc12eb4f9e07fabe89f4ca8852968bf8c9d59370e7f05439e5395eda0fb3bb8 maemo-af-desktop-l10n-ruru_6.0+r7987+0m5_all.deb -cec24e336bc7a4c8e44cf529629f1eda8b48d42adc521863aef483847008162eb844c2dda3775aaa5bb9ed5f55f02fd6dd323d3416d67799e6e9dbe864211be7 maemo-af-desktop-l10n-svse_6.0+r7987+0m5_all.deb -5325e29fc2313a960fd8fda02495d5083e5b504f2f6d7ba0a3bacb5149803e5ff43f6cf8955d64e3c1f0fc3155dacbeb91934a875cb5c6bb5307dc1b4f44c0a8 ke-recv-l10n-cscz_6.0+r7987+0m5_all.deb -c3528fbf8b682446f485a7382732063035b715b39c11a73fa9f965c121d47c29a85be05c6f02aa8b08beff40d561148d7b76ff5939dc901d6ada9eb5521d0325 ke-recv-l10n-dadk_6.0+r7987+0m5_all.deb -c4566ae8079d463d22ddf21739fe163cc3f5bcc2f723e34fba2bf82d879c966ba6f5fc5d65a627cccd156fee91c44ff9113605f04a20fb13c8e75d6788b09687 ke-recv-l10n-dede_6.0+r7987+0m5_all.deb -9cc107b0e6d368a7cad3b96c4d6c6b907dd5ae05dbee3f944914dfed8ff560ebc8bc6ba024664c63bfe298a2a002cfd1450e854b03b850bd6f13b7c8358160ac ke-recv-l10n-engb_6.0+r7987+0m5_all.deb -424a3e0ffba51302fc384d6ca8cb344242e43183109d901eb46309a5fabcef779785b5486c001d91effc98fc9a79c4eb46895bbe75e130fb826e1d335c6fa55c ke-recv-l10n-enus_6.0+r7987+0m5_all.deb -e8a2a46fc1263e8817cbb14c982c6ace49081c5793d656c36a7150a431058c1142658244feccb4da35f5459d9d6e2b9a7f847d66054d9775d0e95538bef279f3 ke-recv-l10n-eses_6.0+r7987+0m5_all.deb -adbea156bd305a6124031313f495e5010c134b9278a3b6edf5c8f1b67d30e3b072c7fd1c57ebcbb0514d5ac0ec127726e438c18d97c134ba46a023c862cd914e ke-recv-l10n-esmx_6.0+r7987+0m5_all.deb -73accf0c241ce964ab704c0aa59549fe6f4e9a93c70e6a809ae7243e9c1f6226ea051989172ccc173610dfd61201bd7bf0bac012f2d6b6ca0927320187c93894 ke-recv-l10n-fifi_6.0+r7987+0m5_all.deb -c071d4d7626913216e5ba0289a086249c16990f4e78ccc0cfde5859120b738ab17069f7814ad5ad0f375ca7308c5d65ad53ebb8c30c9b29024e2a0209f8fd611 ke-recv-l10n-frca_6.0+r7987+0m5_all.deb -fc18da52202595dcbe275d858a34a36d00a90e02c1e7ebe9a217cae06f8b5d14f2b05f893d2660977e11f6843c102705f69f5d2fd9752a66fa417a598d2aea9d ke-recv-l10n-frfr_6.0+r7987+0m5_all.deb -1530930af738cc40f6c690e5feb7361641172f86aad8425065d9d18f89d8a6db2075064217a7d0e4b64b3bb1f64b4cdee4592bc97a7f1d2fe3c6cfffd6ba008d ke-recv-l10n-itit_6.0+r7987+0m5_all.deb -c6e5afeb749f57eeae5fed7875fa9f61e99861c28a635f78c6c8208fcb646760d508a7e842f6e6f4edacc9862589bb14aeed3a8a428449c1cd2280a5c122c40b ke-recv-l10n-nlnl_6.0+r7987+0m5_all.deb -02fbc265e2f14f8e9842e5868fea5c13eabccc9e51584fc4082ae6711815e618009b693a9302f60d5c3c3a1581b4531960763a3b840e775481f18179cf717c73 ke-recv-l10n-nono_6.0+r7987+0m5_all.deb -df3adbf69770e60f846ffae8857df211abd8415883cddbd5bba8b3901fe6101509a1f94026a3cdd5b8c4647e4c18b0da240403ce34199b9e530f49be7b562178 ke-recv-l10n-plpl_6.0+r7987+0m5_all.deb -1950be7298d26099f3f8b5c37fd0c9d903ee2dcdfe62a2f733513c45459c3fa41b3f785a28666b0de1a14d69b62df7eaf21b19f5763e40dc801639f10f2654ac ke-recv-l10n-ptpt_6.0+r7987+0m5_all.deb -73356ddea9fbbd1e729b875bbe8b35bf9874650783e5de02b8a0f71b8761bb6a016600fdec1cf72844ef9a4bee12f8aa966a56f681dd9a388e65a4fef661dc42 ke-recv-l10n-ruru_6.0+r7987+0m5_all.deb -e9ca1a4f992bd7eab3a6041f82382214190cdd7f68b4faf065ed0708d2fadfc83ec7fb2450a80cf3fc66e132c85c43af58470a455943882e03dc2e5fd51ace8e ke-recv-l10n-svse_6.0+r7987+0m5_all.deb" diff --git a/maemo/maemo-launcher/APKBUILD b/maemo/maemo-launcher/APKBUILD deleted file mode 100644 index 4f3559e57..000000000 --- a/maemo/maemo-launcher/APKBUILD +++ /dev/null @@ -1,27 +0,0 @@ -# Maintainer: Nikita Ukhrenkov -pkgname=maemo-launcher -pkgver=0.36.1 -pkgrel=0 -pkgdesc="Application startup accelerator for Maemo" -arch="all !armhf !armv7" -url="https://github.com/maemo-leste/maemo-launcher" -license="GPL-2.0-only" -makedepends="autoconf automake libhildon-dev iphbd-dev dbus-glib-dev" -subpackages="$pkgname-dev $pkgname-doc" -source="$pkgname-$pkgver.tar.gz::https://github.com/maemo-leste/maemo-launcher/archive/$pkgver.tar.gz" - -prepare() { - default_prepare - - autoreconf -fi -} - -build() { - ./configure --prefix=/usr - make -} - -package() { - make DESTDIR="$pkgdir/" install -} -sha512sums="3f36714b35b834f38a615f3f8ed90b6f2bee83d5f023e374cf260537f4ac841f888b6ee1b47bab6f86a02d122bd9f6ac8afe228a4fb3b3aba7d6e1cededa60de maemo-launcher-0.36.1.tar.gz" diff --git a/maemo/mce-headers/APKBUILD b/maemo/mce-headers/APKBUILD deleted file mode 100644 index 2122d1452..000000000 --- a/maemo/mce-headers/APKBUILD +++ /dev/null @@ -1,26 +0,0 @@ -# Maintainer: Nikita Ukhrenkov -pkgname=mce-headers -pkgver=1.8.19 -pkgrel=2 -pkgdesc="Development files for mce" -arch="noarch !armhf !armv7" -url="https://github.com/maemo-leste/mce-dev" -license="LGPL-2.1" -makedepends="coreutils doxygen" -subpackages="$pkgname-doc" -source="$pkgname-$pkgver.tar.gz::https://github.com/maemo-leste/mce-dev/archive/$pkgver.tar.gz" - -builddir="$srcdir/mce-dev-$pkgver" - -build() { - cd "$builddir" - mkdir doc -} - -package() { - cd "$builddir" - make DESTDIR="$pkgdir/" install - install -d $pkgdir/usr/share/doc/mce-doc/html/ - install -m 644 doc/html/* $pkgdir/usr/share/doc/mce-doc/html/ -} -sha512sums="e7eafc081ce1702b8eb42951abea58e98b54bb313e7c742b0502e2d189ed5c71bb72b4ed344537e98c9a9aa6da90bf3cfd5933a302918dd5e18552f32933a9ae mce-headers-1.8.19.tar.gz" diff --git a/maemo/mce/APKBUILD b/maemo/mce/APKBUILD deleted file mode 100644 index ee3c35deb..000000000 --- a/maemo/mce/APKBUILD +++ /dev/null @@ -1,28 +0,0 @@ -# Contributor: Bart Ribbers -# Maintainer: Nikita Ukhrenkov -pkgname=mce -pkgver=1.8.128.13 -pkgrel=0 -pkgdesc="Mode Control Entity - Provides device mode logic and services for DSM interface" -url="https://github.com/maemo-leste/mce" -arch="all !armhf !armv7" -license="LGPL-2.1-only" -depends_dev="dsme-dev mce-headers" -makedepends="$depends_dev glib-dev dbus-dev gconf-dev libcal-dev dbus-glib-dev upower-dev - libconic-dev libdevlock-dev osso-systemui-tklock-dev osso-systemui-powerkeymenu-dev - osso-systemui-dbus-headers osso-systemui-devlock-headers - osso-systemui-modechange-headers osso-systemui-splashscreen-headers" -source="$pkgname-$pkgver.tar.gz::https://github.com/maemo-leste/mce/archive/$pkgver.tar.gz - busybox-install-incompability.patch" -options="!check" - -build() { - CFLAGS="$CFLAGS -Wno-error=deprecated-declarations" make -} - -package() { - DESTDIR="$pkgdir" make install -} - -sha512sums="8d173a94894f628e2e4474186171e05e8f46a7c12967a38baf8a137986488f017d815a8c02e813ac3370577bd0bada36718cdca4652fc90c124900b7c9a2bee7 mce-1.8.128.13.tar.gz -1654f3883b77b500671e97f3f336401a6bb3f9bb6297a12c27e2d6ff0a428933b5662b16bb0247280b7d26a170115a2458106c32c93ebe180c968fd0b5c352a5 busybox-install-incompability.patch" diff --git a/maemo/mce/busybox-install-incompability.patch b/maemo/mce/busybox-install-incompability.patch deleted file mode 100644 index 7d71e19a3..000000000 --- a/maemo/mce/busybox-install-incompability.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff --git a/Makefile b/Makefile -index b14c6aa..7569e5d 100644 ---- a/Makefile -+++ b/Makefile -@@ -4,9 +4,9 @@ - - VERSION := 1.8.128 - --INSTALL := install -o root -g root --mode=755 -+INSTALL := install -o root -g root -m 755 - INSTALL_DIR := install -d --INSTALL_DATA := install -o root -g root --mode=644 -+INSTALL_DATA := install -o root -g root -m 644 - - VARDIR := $(DESTDIR)/var/lib/mce - RUNDIR := $(DESTDIR)/var/run/mce diff --git a/maemo/osso-bookmark-engine/APKBUILD b/maemo/osso-bookmark-engine/APKBUILD deleted file mode 100644 index 492db27a7..000000000 --- a/maemo/osso-bookmark-engine/APKBUILD +++ /dev/null @@ -1,25 +0,0 @@ -# Maintainer: Nikita Ukhrenkov -pkgname=osso-bookmark-engine -pkgver=2.0.0 -pkgrel=1 -pkgdesc="Bookmark engine for the Maemo Bookmark application" -arch="all !armhf !armv7" -url="https://github.com/maemo-leste/$pkgname" -license="GPL" -depends= -makedepends="gconf-dev glib-dev libtool libxml2-dev" -source="$pkgname-$pkgver.tar.gz::https://github.com/maemo-leste/$pkgname/archive/$pkgver.tar.gz" -subpackages="$pkgname-dev" - -builddir="$srcdir/$pkgname-$pkgver" - -build() { - cd "$builddir" - make -} - -package() { - cd "$builddir" - make DESTDIR="$pkgdir/" install -} -sha512sums="f19cfd615c7658c9da7ada8d53c398f7f6ec9bd6ac5c99f6bb85551ec9db9f7865507a00a877f32ebf15924d69c4f85d5d444443b817a27ca9da4bb176bab323 osso-bookmark-engine-2.0.0.tar.gz" diff --git a/maemo/osso-systemui-dbus-headers/APKBUILD b/maemo/osso-systemui-dbus-headers/APKBUILD deleted file mode 100644 index 59014058c..000000000 --- a/maemo/osso-systemui-dbus-headers/APKBUILD +++ /dev/null @@ -1,21 +0,0 @@ -# Contributor: Bart Ribbers -# Maintainer: Nikita Ukhrenkov -pkgname=osso-systemui-dbus-headers -pkgver=0.1.4 -pkgrel=0 -pkgdesc="Headers defining the D-Bus method calls provided by the system UI, and the signals emitted by it" -url="https://github.com/maemo-leste/osso-systemui-dbus-dev" -arch="noarch" -license="LGPL-2.1-only" -makedepends="doxygen" -source="$pkgname-$pkgver.tar.gz::https://github.com/maemo-leste/osso-systemui-dbus-dev/archive/$pkgver.tar.gz" -subpackages="$pkgname-doc" -options="!check" -builddir="$srcdir/osso-systemui-dbus-dev-$pkgver" - -package() { - DESTDIR="$pkgdir" make install - install -d -m 644 doc/html "$pkgdir"/usr/share/doc/"$_pkgname" -} - -sha512sums="3747a7b471fd938f841b1ad989cd8b7cd2d68cf505c1891b550dedadd7b2da8908d2c7622b515ab30385649a3eb14e8d7988841155af82106949a945703a7a0b osso-systemui-dbus-headers-0.1.4.tar.gz" diff --git a/maemo/osso-systemui-devlock-headers/APKBUILD b/maemo/osso-systemui-devlock-headers/APKBUILD deleted file mode 100644 index e1663a7ab..000000000 --- a/maemo/osso-systemui-devlock-headers/APKBUILD +++ /dev/null @@ -1,18 +0,0 @@ -# Contributor: Nikita Ukhrenkov -# Maintainer: Nikita Ukhrenkov -pkgname="osso-systemui-devlock-headers" -pkgver="0.3.5" -pkgrel=0 -pkgdesc="System UI device lock plugin development headers" -url="https://github.com/maemo-leste/osso-systemui-devlock-dev" -arch="noarch" -license="LGPL-2.1-only" -source="$pkgname-$pkgver.tar.gz::https://github.com/maemo-leste/osso-systemui-devlock-dev/archive/$pkgver.tar.gz" -options="!check" -builddir="$srcdir/osso-systemui-devlock-dev-$pkgver" - -package() { - make DESTDIR="$pkgdir" install -} - -sha512sums="e7e99923e1b965de44477466ece03217e3fafc585f558c7518a525d9ab0be9431ac21ee23a4ae02df22dd4799f8f43a43813dd4b50ae0896176ea88607659401 osso-systemui-devlock-headers-0.3.5.tar.gz" diff --git a/maemo/osso-systemui-modechange-headers/APKBUILD b/maemo/osso-systemui-modechange-headers/APKBUILD deleted file mode 100644 index 86e9f898b..000000000 --- a/maemo/osso-systemui-modechange-headers/APKBUILD +++ /dev/null @@ -1,18 +0,0 @@ -# Contributor: Nikita Ukhrenkov -# Maintainer: Nikita Ukhrenkov -pkgname="osso-systemui-modechange-headers" -pkgver="0.2.1.2" -pkgrel=0 -pkgdesc="System UI mode change plugin development headers" -url="https://github.com/maemo-leste/osso-systemui-modechange-dev" -arch="noarch" -license="LGPL-2.1-only" -source="$pkgname-$pkgver.tar.gz::https://github.com/maemo-leste/osso-systemui-modechange-dev/archive/$pkgver.tar.gz" -options="!check" -builddir="$srcdir/osso-systemui-modechange-dev-$pkgver" - -package() { - make DESTDIR="$pkgdir" install -} - -sha512sums="8b73fd3bd3645c15c77fe7c775944dc6e2acd8831ef57f14388da334bc5a74b5f55d501d1e98dd282ca48a688210b05150d4cc6c1f86ac0f0e0bb61ecdafde1c osso-systemui-modechange-headers-0.2.1.2.tar.gz" diff --git a/maemo/osso-systemui-powerkeymenu/APKBUILD b/maemo/osso-systemui-powerkeymenu/APKBUILD deleted file mode 100644 index 94a8c2513..000000000 --- a/maemo/osso-systemui-powerkeymenu/APKBUILD +++ /dev/null @@ -1,25 +0,0 @@ -# Contributor: Nikita Ukhrenkov -# Maintainer: Nikita Ukhrenkov -pkgname="osso-systemui-powerkeymenu" -pkgver="0.3.0.4" -pkgrel=0 -pkgdesc="Power key menu UI" -url="https://github.com/maemo-leste/osso-systemui-powerkeymenu" -arch="all !armhf !armv7" -license="LGPL-2.1-only" -makedepends="glib-dev osso-systemui-dev libhildon-dev libnotify-dev alarmd-dev sqlite-dev" -subpackages="$pkgname-dev" -source="osso-systemui-powerkeymenu-$pkgver.tar.gz::https://github.com/maemo-leste/osso-systemui-powerkeymenu/archive/$pkgver.tar.gz" -options="!check" - -build() { - make -} - -package() { - DESTDIR="$pkgdir" make install - install -D -m 644 include/systemui/powerkeymenu-dbus-names.h \ - "$pkgdir"/usr/include/systemui/powerkeymenu-dbus-names.h -} - -sha512sums="5754d03d625b8335ac2e0fdbdfa8c8005233d75e04781d1e2917ea0fa6c99d2fc7a00bffac8c9663d3d9c59c4a648ea2d790f48213c6380c764d1cdc1df91f86 osso-systemui-powerkeymenu-0.3.0.4.tar.gz" diff --git a/maemo/osso-systemui-splashscreen-headers/APKBUILD b/maemo/osso-systemui-splashscreen-headers/APKBUILD deleted file mode 100644 index 6c5ab89c9..000000000 --- a/maemo/osso-systemui-splashscreen-headers/APKBUILD +++ /dev/null @@ -1,21 +0,0 @@ -# Contributor: Nikita Ukhrenkov -# Maintainer: Nikita Ukhrenkov -pkgname=osso-systemui-splashscreen-headers -pkgver=0.2.30 -pkgrel=0 -pkgdesc="System UI splashscreen plugin development headers" -url="https://github.com/maemo-leste/osso-systemui-splashscreen-dev" -arch="noarch" -license="LGPL-2.1-only" -makedepends="doxygen" -subpackages="$pkgname-doc" -source="$pkgname-$pkgver.tar.gz::https://github.com/maemo-leste/osso-systemui-splashscreen-dev/archive/$pkgver.tar.gz" -options="!check" -builddir="$srcdir/osso-systemui-splashscreen-dev-$pkgver" - -package() { - DESTDIR="$pkgdir" make install - install -d -m 644 doc/html "$pkgdir"/usr/share/doc/"$_pkgname" -} - -sha512sums="9133a1035db1204a95c16e5ba61fc75a79f98c01e104ebeb86a383980f001e3aea633cb60165b334f1f1cf0b4b61264e9d65a8860745753783a56abb62d586f0 osso-systemui-splashscreen-headers-0.2.30.tar.gz" diff --git a/maemo/osso-systemui-tklock/APKBUILD b/maemo/osso-systemui-tklock/APKBUILD deleted file mode 100644 index 738470165..000000000 --- a/maemo/osso-systemui-tklock/APKBUILD +++ /dev/null @@ -1,24 +0,0 @@ -# Contributor: Nikita Ukhrenkov -# Maintainer: Nikita Ukhrenkov -pkgname="osso-systemui-tklock" -pkgver="0.3.2.0" -pkgrel=0 -pkgdesc="Touch screen and keypad lock UI" -url="https://github.com/maemo-leste/osso-systemui-tklock" -arch="all !armhf !armv7" -license="LGPL-2.1-only" -makedepends="glib-dev osso-systemui-dev libhildon-dev libnotify-dev alarmd-dev clockd-dev sqlite-dev" -subpackages="$pkgname-dev" -source="osso-systemui-tklock-$pkgver.tar.gz::https://github.com/maemo-leste/osso-systemui-tklock/archive/$pkgver.tar.gz" -options="!check" - -build() { - make -} - -package() { - DESTDIR="$pkgdir" make install - install -D -m 644 include/systemui/tklock-dbus-names.h "$pkgdir/usr/include/systemui/tklock-dbus-names.h" -} - -sha512sums="6a3ed4d4efee6b7a1268042dadb9f34aad74555b491ecdb09450524b4fb0336d908070ab7dafbdf084bdb21ad48c073e8c976ee04e22c34db20427e461546b64 osso-systemui-tklock-0.3.2.0.tar.gz" diff --git a/maemo/osso-systemui/APKBUILD b/maemo/osso-systemui/APKBUILD deleted file mode 100644 index 304c61126..000000000 --- a/maemo/osso-systemui/APKBUILD +++ /dev/null @@ -1,33 +0,0 @@ -# Contributor: Bart Ribbers -# Maintainer: Nikita Ukhrenkov -pkgname=osso-systemui -pkgver=0.2.0.19 -pkgrel=0 -pkgdesc="OSSO systemui" -url="https://github.com/maemo-leste/osso-systemui" -arch="all !armhf !armv7" -license="LGPL-2.1-only" -depends_dev="gtk+3.0-dev libcanberra-dev gconf-dev libosso-dev mce-headers osso-systemui-dbus-headers" -makedepends="$depends_dev autoconf automake libtool" -source="$pkgname-$pkgver.tar.gz::https://github.com/maemo-leste/osso-systemui/archive/$pkgver.tar.gz - osso-systemui-musl-fix.patch" -subpackages="$pkgname-dev" -options="!check" - -prepare() { - default_prepare - - sh autogen.sh -} - -build() { - ./configure --prefix=/usr - make -} - -package() { - DESTDIR="$pkgdir" make install -} - -sha512sums="92aac73458446bfccd907f15388ec1e0d4c122b1e70d458933ca6c0739582497bc64480eec5ee9e4928627fd360854977ed9a35746f16e9c107c1a96d5e583ec osso-systemui-0.2.0.19.tar.gz -1cf4a84f44b23c51209a401a6fcddce1d1f8c19df036814ef6750552d44bebbf23a6226aeae693fb4750cfd71f9ae7aa3e44d283d97df1220569c30afab44be6 osso-systemui-musl-fix.patch" diff --git a/maemo/osso-systemui/osso-systemui-musl-fix.patch b/maemo/osso-systemui/osso-systemui-musl-fix.patch deleted file mode 100644 index 446f9f5f3..000000000 --- a/maemo/osso-systemui/osso-systemui-musl-fix.patch +++ /dev/null @@ -1,27 +0,0 @@ -From f3f317e0ed2ce0df0d19f4093fd265de55a0897f Mon Sep 17 00:00:00 2001 -From: Nikita Ukhrenkov -Date: Thu, 14 Nov 2019 13:47:46 +0100 -Subject: [PATCH] Use pid_t instead of __pid_t to fix build with musl - ---- - src/systemui.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/systemui.c b/src/systemui.c -index 71ecdde..dc0ca18 100644 ---- a/src/systemui.c -+++ b/src/systemui.c -@@ -272,9 +272,9 @@ check_set_callback(GArray *args, system_ui_callback_t *callback) - - void daemonize() - { -- __pid_t pid = fork(); -+ pid_t pid = fork(); - int fd; -- char buf[2 * sizeof(__pid_t)]; /*should be large enough */ -+ char buf[2 * sizeof(pid_t)]; /*should be large enough */ - - if (pid == -1) - ULOG_CRIT("daemonize: fork failed: %s", strerror(errno)); --- -2.17.1 diff --git a/maemo/osso-xterm/APKBUILD b/maemo/osso-xterm/APKBUILD deleted file mode 100644 index 428abb656..000000000 --- a/maemo/osso-xterm/APKBUILD +++ /dev/null @@ -1,29 +0,0 @@ -# Maintainer: Nikita Ukhrenkov -pkgname=osso-xterm -pkgver=0.14 -_tag=0.14.mh34 -pkgrel=1 -pkgdesc="Maemo X Terminal Emulator" -arch="all !armhf !armv7" -url="https://github.com/maemo-leste/$_tag" -license="GPL" -depends="maemo-launcher" -makedepends="dbus-glib-dev gconf-dev vte-dev libhildon-dev maemo-launcher-dev - libosso-dev autoconf automake libtool m4" -source="$pkgname-$_tag.tar.gz::https://github.com/maemo-leste/$pkgname/archive/$_tag.tar.gz" -subpackages="$pkgname-lang" - -builddir="$srcdir/$pkgname-$_tag" - -build() { - cd "$builddir" - ./autogen.sh - ./configure --prefix=/usr --enable-maemo-launcher - make -} - -package() { - cd "$builddir" - make DESTDIR="$pkgdir/" install -} -sha512sums="e0989176c5953eadca124efeab1f8083b77daa1cf8d9a680f93d6d91bf488cd86b74fc8655f398fc45a00047d3c8919618c6cd3bb343a4037f74ad42628a50d8 osso-xterm-0.14.mh34.tar.gz" diff --git a/maemo/profiled/APKBUILD b/maemo/profiled/APKBUILD deleted file mode 100644 index 5739d4cb8..000000000 --- a/maemo/profiled/APKBUILD +++ /dev/null @@ -1,27 +0,0 @@ -# Maintainer: Nikita Ukhrenkov -pkgname=profiled -pkgver=1.0.6 -pkgrel=0 -pkgdesc="Maemo profile daemon, manages user settings" -arch="all !armhf !armv7" -url="https://github.com/maemo-leste/profiled" -license="BSD" -depends="dbus dbus-glib" -makedepends="doxygen dbus-dev dbus-glib-dev" -subpackages="$pkgname-dev $pkgname-doc" -source="$pkgname-$pkgver.tar.gz::https://github.com/maemo-leste/profiled/archive/$pkgver.tar.gz - profiled-fix-musl.patch" - -builddir="$srcdir/profiled-$pkgver" - -build() { - cd "$builddir" - make -} - -package() { - cd "$builddir" - make ROOT="$pkgdir/" install -} -sha512sums="b97959b1973c268f738fcfea5a265a80e9ca81057cba698b9a8584712ee74ff6b0d0025a696ddb14274ad6ec3be2035a9400cab64406c8769b55ec47fc8ee101 profiled-1.0.6.tar.gz -21d0bd943c165de35223fc7003da8438eb77f7450810ce0a4ba8d0ae918c3af36f286503d568fe97e534e9a52463cd657b00277cc7ff010869e43453b6142328 profiled-fix-musl.patch" diff --git a/maemo/profiled/profiled-fix-musl.patch b/maemo/profiled/profiled-fix-musl.patch deleted file mode 100644 index 1acc6921c..000000000 --- a/maemo/profiled/profiled-fix-musl.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff --git a/profiled_config.h b/profiled_config.h -index 931aa9e..b4df46f 100644 ---- a/profiled_config.h -+++ b/profiled_config.h -@@ -42,6 +42,16 @@ extern "C" { - } /* fool JED indentation ... */ - #endif - -+/* taken from glibc unistd.h and fixes musl */ -+#ifndef TEMP_FAILURE_RETRY -+#define TEMP_FAILURE_RETRY(expression) \ -+ (__extension__ \ -+ ({ long int __result; \ -+ do __result = (long int) (expression); \ -+ while (__result == -1L && errno == EINTR); \ -+ __result; })) -+#endif -+ - #ifdef __cplusplus - }; - #endif diff --git a/maemo/sapwood/APKBUILD b/maemo/sapwood/APKBUILD deleted file mode 100644 index 55de08225..000000000 --- a/maemo/sapwood/APKBUILD +++ /dev/null @@ -1,25 +0,0 @@ -# Maintainer: Nikita Ukhrenkov -pkgname=sapwood -pkgver=3.1.1 -pkgrel=1 -pkgdesc="Maemo pixbuf-based theme for GTK+ 2.x" -arch="all !armhf !armv7" -url="https://github.com/maemo-leste/$pkgname" -license="GPL" -depends="gtk+2.0-maemo" -makedepends="gtk+2.0-maemo-dev autoconf automake m4 libtool" -source="$pkgname-$pkgver.tar.gz::https://github.com/maemo-leste/$pkgname/archive/$pkgver.tar.gz" - -builddir="$srcdir/$pkgname-$pkgver" - -build() { - cd "$builddir" - ./autogen.sh --prefix=/usr --enable-abstract-sockets - make -} - -package() { - cd "$builddir" - make DESTDIR="$pkgdir/" install -} -sha512sums="6d0d0320b6b73e5ba3f3d1950e6cc542bb0f5195e7738661c0b815b63234057a06bb1757a046a71a49fd044fd5ba8c8c423b20af480f70d19d84e3ca25885f82 sapwood-3.1.1.tar.gz" diff --git a/maemo/statusbar-alarm-dbus/APKBUILD b/maemo/statusbar-alarm-dbus/APKBUILD deleted file mode 100644 index dd6511871..000000000 --- a/maemo/statusbar-alarm-dbus/APKBUILD +++ /dev/null @@ -1,30 +0,0 @@ -# Contributor: Bart Ribbers -# Maintainer: Nikita Ukhrenkov -pkgname=statusbar-alarm-dbus -pkgver=0.5.11 -pkgrel=0 -pkgdesc="Plugin showing current time and indicating if there is any alarm set" -url="https://github.com/maemo-leste/statusbar-alarm-dbus-api" -arch="all !armhf !armv7" -license="BSD-2-Clause" -makedepends="autoconf automake libtool" -source="$pkgname-$pkgver.tar.gz::https://github.com/maemo-leste/statusbar-alarm-dbus-api/archive/$pkgver.tar.gz" -subpackages="$pkgname-dev" -options="!check" -builddir="$srcdir/statusbar-alarm-dbus-api-$pkgver" - -prepare() { - default_prepare - - ./autogen.sh -} - -build() { - ./configure --prefix=/usr -} - -package() { - DESTDIR="$pkgdir" make install -} - -sha512sums="cd45187540777ce62a59a37407d8e318b8e1a3d1169cf98ae4d389f024a7b07c7b185fdfc16c50c2fe0285b06090c8da8baa01f639a1c6f579431283ca0ff100 statusbar-alarm-dbus-0.5.11.tar.gz" diff --git a/main/postmarketos-ui-hildon/60-lightdm-autologin.conf b/main/postmarketos-ui-hildon/60-lightdm-autologin.conf deleted file mode 100644 index f77d8f386..000000000 --- a/main/postmarketos-ui-hildon/60-lightdm-autologin.conf +++ /dev/null @@ -1,5 +0,0 @@ -# This file gets removed with postmarketos-ui-hildon, even if modified! -[Seat:*] -autologin-user=username -autologin-user-timeout=0 -autologin-session=hildon diff --git a/main/postmarketos-ui-hildon/APKBUILD b/main/postmarketos-ui-hildon/APKBUILD deleted file mode 100644 index 6848b444a..000000000 --- a/main/postmarketos-ui-hildon/APKBUILD +++ /dev/null @@ -1,41 +0,0 @@ -# Contributor: Nikita Ukhrenkov -# Maintainer: Nikita Ukhrenkov -pkgname=postmarketos-ui-hildon -pkgver=1 -pkgrel=11 -pkgdesc="(X11) Lightweight GTK+2 UI (optimized for single-touch touchscreens) (DISABLED FOR ARMHF, ARMV7!)" -url="https://postmarketos.org" -arch="noarch !armhf !armv7" -license="GPL-3.0-or-later" -depends=" - dbus-x11 - gtk+2.0-maemo - hildon-desktop - hildon-theme-alpha - lightdm - lightdm-openrc - mesa - pulseaudio - xorg-server - " -install="$pkgname.post-install $pkgname.pre-deinstall $pkgname.post-deinstall $pkgname.post-upgrade" -source="60-lightdm-autologin.conf hildon.desktop xinitrc_hildon.sh" -options="!check" - -package() { - # Default theme - mkdir -p "$pkgdir"/usr/share/themes - ln -s /usr/share/themes/alpha "$pkgdir"/usr/share/themes/default - - install -Dm644 "$srcdir"/hildon.desktop \ - "$pkgdir"/usr/share/xsessions/hildon.desktop - - install -Dm755 "$srcdir"/xinitrc_hildon.sh \ - "$pkgdir"/usr/bin/xinitrc_hildon - - install -Dm644 "$srcdir"/60-lightdm-autologin.conf \ - "$pkgdir"/usr/share/lightdm/lightdm.conf.d/60-autologin.conf -} -sha512sums="7abdefbffd24c5c7cd1400045895ee2c2cad933398bf37c749594efb698767efdac95aced9c1e7ea26f2333a2e9c877a0698ab5d086d7fbbd2972f261f6beb87 60-lightdm-autologin.conf -b2c52b8d8751ed10c148f2a6aa3ab76be8b4854c85721963fb303a3605c9762e317221b5b69f8a41ccc19580055d7a6f07fa110b1daa7f3975f226b0d9acb833 hildon.desktop -24bb92da41979df11944da60ab260c6c1e2ce82b66e143dc145e5657d53c3861c70a87f8dad06e623632c492bc401e5c216c2c1e54224c8f0aedfe6ef2230e80 xinitrc_hildon.sh" diff --git a/main/postmarketos-ui-hildon/hildon.desktop b/main/postmarketos-ui-hildon/hildon.desktop deleted file mode 100644 index 60e9f601f..000000000 --- a/main/postmarketos-ui-hildon/hildon.desktop +++ /dev/null @@ -1,11 +0,0 @@ -[Desktop Entry] -Name=Hildon -Name[en]=Hildon -Comment=This session logs you into Hildon -Comment[en]=This session logs you into Hildon -Exec=/usr/bin/xinitrc_hildon -TryExec=/usr/bin/xinitrc_hildon -Icon= -Type=Application -DesktopNames=Hildon -Keywords=launch;Hildon;desktop;session; diff --git a/main/postmarketos-ui-hildon/postmarketos-ui-hildon.post-deinstall b/main/postmarketos-ui-hildon/postmarketos-ui-hildon.post-deinstall deleted file mode 100644 index 48d6f9835..000000000 --- a/main/postmarketos-ui-hildon/postmarketos-ui-hildon.post-deinstall +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -rm /usr/share/lightdm/lightdm.conf.d/60-autologin.conf diff --git a/main/postmarketos-ui-hildon/postmarketos-ui-hildon.post-install b/main/postmarketos-ui-hildon/postmarketos-ui-hildon.post-install deleted file mode 100644 index a7791b1e4..000000000 --- a/main/postmarketos-ui-hildon/postmarketos-ui-hildon.post-install +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh - -sed -i "s/username/$(getent passwd 10000 | cut -d: -f1)/g" /usr/share/lightdm/lightdm.conf.d/60-autologin.conf - -rc-update add lightdm default diff --git a/main/postmarketos-ui-hildon/postmarketos-ui-hildon.post-upgrade b/main/postmarketos-ui-hildon/postmarketos-ui-hildon.post-upgrade deleted file mode 100644 index a7791b1e4..000000000 --- a/main/postmarketos-ui-hildon/postmarketos-ui-hildon.post-upgrade +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh - -sed -i "s/username/$(getent passwd 10000 | cut -d: -f1)/g" /usr/share/lightdm/lightdm.conf.d/60-autologin.conf - -rc-update add lightdm default diff --git a/main/postmarketos-ui-hildon/postmarketos-ui-hildon.pre-deinstall b/main/postmarketos-ui-hildon/postmarketos-ui-hildon.pre-deinstall deleted file mode 100644 index c815bf5fd..000000000 --- a/main/postmarketos-ui-hildon/postmarketos-ui-hildon.pre-deinstall +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -rc-update del lightdm diff --git a/main/postmarketos-ui-hildon/xinitrc_hildon.sh b/main/postmarketos-ui-hildon/xinitrc_hildon.sh deleted file mode 100644 index ec5da824c..000000000 --- a/main/postmarketos-ui-hildon/xinitrc_hildon.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/sh - -# Set default wallpapers -mkdir -p ~/.backgrounds -for i in 1 2 3 4; do - source=/usr/share/themes/alpha/backgrounds/wallpaper$i.png - destination=~/.backgrounds/background-$i.png - [ -e "$destination" ] || ln -s "$source" "$destination" -done - -# Start dbus and export its environment variables -eval "$(dbus-launch --sh-syntax --exit-with-session)" - -# Start X11 with Hildon -export LC_MESSAGES=en_US.UTF-8 -export CLUTTER_BACKEND=x11 -exec hildon-desktop