oops hehe. a render call in the loop for debugging was what made it slow. anyhow make it even faster by only calling render once too. yay snappiness.
This commit is contained in:
parent
3905872982
commit
d915480371
1 changed files with 11 additions and 9 deletions
|
@ -824,13 +824,18 @@ static void menu_frame_update(ObMenuFrame *self)
|
||||||
fit = n;
|
fit = n;
|
||||||
}
|
}
|
||||||
|
|
||||||
menu_frame_render(self);
|
/* * make the menu fit on the screen */
|
||||||
|
|
||||||
/* make the menu fit on the screen. at most we call render twice, at least
|
/* calculate the height of the menu */
|
||||||
not like n times or sometime */
|
h = 0;
|
||||||
|
for (fit = self->entries; fit; fit = g_list_next(fit))
|
||||||
|
h += menu_entry_frame_get_height(fit->data,
|
||||||
|
fit == self->entries,
|
||||||
|
g_list_next(fit) == NULL);
|
||||||
|
/* add the border at the top and bottom */
|
||||||
|
h += ob_rr_theme->mbwidth * 2;
|
||||||
|
|
||||||
a = screen_physical_area_monitor(self->monitor);
|
a = screen_physical_area_monitor(self->monitor);
|
||||||
h = self->area.height;
|
|
||||||
|
|
||||||
if (h > a->height) {
|
if (h > a->height) {
|
||||||
GList *flast, *tmp;
|
GList *flast, *tmp;
|
||||||
|
@ -854,8 +859,6 @@ static void menu_frame_update(ObMenuFrame *self)
|
||||||
menu_entry_frame_free(tmp->data);
|
menu_entry_frame_free(tmp->data);
|
||||||
self->entries = g_list_delete_link(self->entries, tmp);
|
self->entries = g_list_delete_link(self->entries, tmp);
|
||||||
|
|
||||||
menu_frame_render(self);
|
|
||||||
|
|
||||||
/* only the first one that we see is the last entry in the menu */
|
/* only the first one that we see is the last entry in the menu */
|
||||||
last_entry = FALSE;
|
last_entry = FALSE;
|
||||||
};
|
};
|
||||||
|
@ -881,10 +884,9 @@ static void menu_frame_update(ObMenuFrame *self)
|
||||||
/* add our More... entry to the frame */
|
/* add our More... entry to the frame */
|
||||||
self->entries = g_list_append(self->entries, more_frame);
|
self->entries = g_list_append(self->entries, more_frame);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* render again */
|
|
||||||
menu_frame_render(self);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
menu_frame_render(self);
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean menu_frame_is_visible(ObMenuFrame *self)
|
static gboolean menu_frame_is_visible(ObMenuFrame *self)
|
||||||
|
|
Loading…
Reference in a new issue