Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@gmail.com>2018-04-29 13:24:08 +0300
committerBrecht Van Lommel <brechtvanlommel@gmail.com>2018-04-29 23:11:12 +0300
commit7a9f64e6657a231289f56b0a8c9949c8f7a23c59 (patch)
treeefee3c4ac1988ad96d743f1d82e7a677096ca0c3 /source/blender/editors/screen/screen_edit.c
parent0c512a6f951e36e29d2f6865cc975f7e40c4d31d (diff)
UI: better support for dynamically sized regions in topbar.
Dynamically sized regions in the topbar were flickering due to only updating their size after redraws. Now there is an optional layout() callback for all regions in an area to do UI layout first, then refresh the region layout, and then do the actual drawing for each region. Task T54753
Diffstat (limited to 'source/blender/editors/screen/screen_edit.c')
-rw-r--r--source/blender/editors/screen/screen_edit.c33
1 files changed, 0 insertions, 33 deletions
diff --git a/source/blender/editors/screen/screen_edit.c b/source/blender/editors/screen/screen_edit.c
index c7d1605cbbf..1cadefadd5c 100644
--- a/source/blender/editors/screen/screen_edit.c
+++ b/source/blender/editors/screen/screen_edit.c
@@ -835,36 +835,6 @@ void ED_screen_refresh(wmWindowManager *wm, wmWindow *win)
screen->context = ed_screen_context;
}
-static bool screen_regions_need_size_refresh(
- const wmWindow *win, const bScreen *screen)
-{
- ED_screen_areas_iter(win, screen, area) {
- if (area->flag & AREA_FLAG_REGION_SIZE_UPDATE) {
- return true;
- }
- }
-
- return false;
-}
-
-static void screen_refresh_region_sizes_only(
- wmWindowManager *wm, wmWindow *win,
- bScreen *screen)
-{
- const int window_size_x = WM_window_pixels_x(win);
- const int window_size_y = WM_window_pixels_y(win);
- const int screen_size_x = WM_window_screen_pixels_x(win);
- const int screen_size_y = WM_window_screen_pixels_y(win);
-
- screen_vertices_scale(win, screen, window_size_x, window_size_y, screen_size_x, screen_size_y);
-
- ED_screen_areas_iter(win, screen, area) {
- screen_area_update_region_sizes(wm, win, area);
- /* XXX hack to force drawing */
- ED_area_tag_redraw(area);
- }
-}
-
/* file read, set all screens, ... */
void ED_screens_initialize(wmWindowManager *wm)
{
@@ -887,9 +857,6 @@ void ED_screen_ensure_updated(wmWindowManager *wm, wmWindow *win, bScreen *scree
if (screen->do_refresh) {
ED_screen_refresh(wm, win);
}
- else if (screen_regions_need_size_refresh(win, screen)) {
- screen_refresh_region_sizes_only(wm, win, screen);
- }
}