summaryrefslogtreecommitdiffstats
path: root/source/view.c
diff options
context:
space:
mode:
authorDave Davenport <qball@gmpclient.org>2017-01-01 12:16:04 +0100
committerDave Davenport <qball@gmpclient.org>2017-01-01 12:16:04 +0100
commit44534653bf17d4a5b7898fe398b4ccb4e4382bb8 (patch)
tree228adf9b468c00d8058987cf1470a72a4f4aebb0 /source/view.c
parent5c547393b8c0e8049f4dee635ea1a5baef6df847 (diff)
Remove border from ViewState
Diffstat (limited to 'source/view.c')
-rw-r--r--source/view.c20
1 files changed, 15 insertions, 5 deletions
diff --git a/source/view.c b/source/view.c
index ebb007ff..cc21440a 100644
--- a/source/view.c
+++ b/source/view.c
@@ -209,6 +209,8 @@ static gboolean rofi_view_repaint ( G_GNUC_UNUSED void * data )
{
if ( current_active_menu ) {
// Repaint the view (if needed).
+ // After a resize the edit_pixmap surface might not contain anything anymore.
+ // If we already re-painted, this does nothing.
rofi_view_update (current_active_menu, FALSE);
g_log ( LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "expose event" );
TICK_N ( "Expose" );
@@ -662,7 +664,7 @@ static void rofi_view_calculate_window_and_element_width ( RofiViewState *state
else if ( config.menu_width < 0 ) {
double fw = textbox_get_estimated_char_width ( );
state->width = -( fw * config.menu_width );
- state->width += 2 * state->border;
+ state->width += window_get_border_width ( state->main_window );
}
else{
// Calculate as float to stop silly, big rounding down errors.
@@ -1419,7 +1421,6 @@ RofiViewState *rofi_view_create ( Mode *sw,
state->skip_absorb = FALSE;
//We want to filter on the first run.
state->refilter = TRUE;
- state->border = 0;
state->finalize = finalize;
state->mouse_seen = FALSE;
@@ -1542,7 +1543,6 @@ int rofi_view_error_dialog ( const char *msg, int markup )
state->retv = MENU_CANCEL;
state->menu_flags = MENU_ERROR_DIALOG;
state->finalize = process_result;
- state->border += rofi_theme_get_integer ( "@window", "window", NULL, "border-width" , config.menu_bw);
rofi_view_calculate_window_and_element_width ( state );
state->main_window = window_create ( "window" );
@@ -1675,9 +1675,19 @@ void rofi_view_set_overlay ( RofiViewState *state, const char *text )
}
widget_enable ( WIDGET ( state->overlay ) );
textbox_text ( state->overlay, text );
- unsigned int x_offset = state->width - ( 2 * state->border ) - widget_get_width ( WIDGET ( state->case_indicator ) );
+ int x_offset = widget_get_width ( WIDGET(state->main_window) );
+ // Within padding of window.
+ x_offset -= widget_padding_get_right ( WIDGET (state->main_window) );
+ // Within the border of widget.
+ x_offset -= window_get_border_width ( state->main_window );
+ x_offset -= widget_padding_get_right ( WIDGET (state->main_box ) );
+ x_offset -= widget_padding_get_right ( WIDGET (state->input_bar ) );
+ x_offset -= widget_get_width ( WIDGET ( state->case_indicator ) );
x_offset -= widget_get_width ( WIDGET ( state->overlay ) );
- widget_move ( WIDGET ( state->overlay ), x_offset, state->border );
+ int top_offset = window_get_border_width ( state->main_window );
+ top_offset += widget_padding_get_top ( WIDGET (state->main_window) );
+ top_offset += widget_padding_get_top ( WIDGET (state->main_box ) );
+ widget_move ( WIDGET ( state->overlay ), x_offset, top_offset );
// We want to queue a repaint.
rofi_view_queue_redraw ( );
}