summaryrefslogtreecommitdiffstats
path: root/src/application.c
diff options
context:
space:
mode:
authorPatrick McDermott <pj@pehjota.net>2017-09-29 03:09:46 (EDT)
committer Patrick McDermott <pj@pehjota.net>2017-09-29 03:09:46 (EDT)
commit08bf27821fe5e1444e993820adb5d874fbe04820 (patch)
treee1d369c7112a1427c0f20f1b5794bf52d13b4852 /src/application.c
parent28ebf0ef8595715158b840c6213315efa634bfbd (diff)
downloadmarquee-08bf27821fe5e1444e993820adb5d874fbe04820.zip
marquee-08bf27821fe5e1444e993820adb5d874fbe04820.tar.gz
marquee-08bf27821fe5e1444e993820adb5d874fbe04820.tar.bz2
MARQUEE MODE
Only works on ASCII titles so far. Crashes on UTF-8 titles.
Diffstat (limited to 'src/application.c')
-rw-r--r--src/application.c46
1 files changed, 46 insertions, 0 deletions
diff --git a/src/application.c b/src/application.c
index d4fa802..531eb53 100644
--- a/src/application.c
+++ b/src/application.c
@@ -70,3 +70,49 @@ mq_application_delete_window(MqApplication *application, MqWindow *window)
gtk_main_quit();
}
}
+
+static gboolean
+scroll_tab_labels(MqApplication *application)
+{
+ GList *item;
+
+ if (application->marquee_mode) {
+ for (item = application->windows; item; item = item->next) {
+ mq_window_scroll_tab_labels(item->data);
+ }
+ return G_SOURCE_CONTINUE;
+ } else {
+ return G_SOURCE_REMOVE;
+ }
+}
+
+void
+mq_application_marquee_mode_activate(MqApplication *application)
+{
+ GList *item;
+
+ for (item = application->windows; item; item = item->next) {
+ mq_window_begin_scrolling_tab_labels(item->data);
+ }
+
+ application->marquee_mode = TRUE;
+ g_timeout_add(125, (GSourceFunc) scroll_tab_labels, application);
+}
+
+void
+mq_application_marquee_mode_deactivate(MqApplication *application)
+{
+ GList *item;
+
+ for (item = application->windows; item; item = item->next) {
+ mq_window_end_scrolling_tab_labels(item->data);
+ }
+
+ application->marquee_mode = FALSE;
+}
+
+gboolean
+mq_application_marquee_mode_on(MqApplication *application)
+{
+ return application->marquee_mode;
+}