diff options
author | Patrick McDermott <pj@pehjota.net> | 2017-09-29 03:09:46 (EDT) |
---|---|---|
committer | Patrick McDermott <pj@pehjota.net> | 2017-09-29 03:09:46 (EDT) |
commit | 08bf27821fe5e1444e993820adb5d874fbe04820 (patch) | |
tree | e1d369c7112a1427c0f20f1b5794bf52d13b4852 /src/application.c | |
parent | 28ebf0ef8595715158b840c6213315efa634bfbd (diff) | |
download | marquee-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.c | 46 |
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; +} |