diff options
Diffstat (limited to 'source/view.c')
-rw-r--r-- | source/view.c | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/source/view.c b/source/view.c index 2f6ce5f0..0d6d8cad 100644 --- a/source/view.c +++ b/source/view.c @@ -790,9 +790,7 @@ void __create_window ( MenuFlags menu_flags ) TICK_N ( "setup window fullscreen" ); // Set the WM_NAME - xcb_change_property ( xcb->connection, XCB_PROP_MODE_REPLACE, box_window, xcb->ewmh._NET_WM_NAME, xcb->ewmh.UTF8_STRING, 8, 4, "rofi" ); - xcb_change_property ( xcb->connection, XCB_PROP_MODE_REPLACE, box_window, XCB_ATOM_WM_NAME, XCB_ATOM_STRING, 8, 4, "rofi" ); - + rofi_view_set_window_title ( "rofi" ); const char wm_class_name[] = "rofi\0Rofi"; xcb_icccm_set_wm_class ( xcb->connection, box_window, sizeof ( wm_class_name ), wm_class_name ); @@ -1715,6 +1713,13 @@ RofiViewState *rofi_view_create ( Mode *sw, // Request the lines to show. state->num_lines = mode_get_num_entries ( sw ); + if ( state->sw ) { + char * title = g_strdup_printf ( "rofi - %s", mode_get_display_name (state->sw ) ); + rofi_view_set_window_title ( title ); + g_free ( title ); + } else { + rofi_view_set_window_title ( "rofi" ); + } TICK_N ( "Startup notification" ); // Get active monitor size. @@ -1921,6 +1926,13 @@ void rofi_view_switch_mode ( RofiViewState *state, Mode *mode ) if ( state->prompt ) { rofi_view_update_prompt ( state ); } + if ( state->sw ) { + char * title = g_strdup_printf ( "rofi - %s", mode_get_display_name (state->sw ) ); + rofi_view_set_window_title ( title ); + g_free ( title ); + } else { + rofi_view_set_window_title ( "rofi" ); + } if ( state->sidebar_bar ) { for ( unsigned int j = 0; j < state->num_modi; j++ ) { const Mode * mode = rofi_get_mode ( j ); @@ -1938,3 +1950,10 @@ xcb_window_t rofi_view_get_window ( void ) { return CacheState.main_window; } + +void rofi_view_set_window_title ( const char * title ) +{ + ssize_t len = strlen(title); + xcb_change_property ( xcb->connection, XCB_PROP_MODE_REPLACE, CacheState.main_window, xcb->ewmh._NET_WM_NAME, xcb->ewmh.UTF8_STRING, 8, len, title ); + xcb_change_property ( xcb->connection, XCB_PROP_MODE_REPLACE, CacheState.main_window, XCB_ATOM_WM_NAME, XCB_ATOM_STRING, 8, len, title ); +} |