diff options
author | Lionel AINS <lains@caramail.com> | 2018-11-16 08:34:57 +0100 |
---|---|---|
committer | Lionel AINS <lains@caramail.com> | 2018-11-16 08:34:57 +0100 |
commit | 7562c5a8f9b404168f7fceeb9ecd202c63586f4f (patch) | |
tree | ceb36397250c77539983163f554d1462e24e4535 | |
parent | 91e6a05e1520926a9c5897fca4b64bdcf11791ad (diff) | |
download | navit-7562c5a8f9b404168f7fceeb9ecd202c63586f4f.tar.gz |
Creating gui_internal_menu_needs_resizing() function from existing code
-rw-r--r-- | .circleci/config.yml | 6 | ||||
-rw-r--r-- | navit/gui/internal/gui_internal.c | 7 | ||||
-rw-r--r-- | navit/gui/internal/gui_internal_menu.c | 23 | ||||
-rw-r--r-- | navit/gui/internal/gui_internal_menu.h | 1 |
4 files changed, 28 insertions, 9 deletions
diff --git a/.circleci/config.yml b/.circleci/config.yml index eecf98b57..ae6348c25 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -62,18 +62,18 @@ jobs: name: Id command: cat /etc/*release - run: - name: Install cmake gettext libsaxonb-java librsvg2-bin pkg-config + name: Install cmake gettext libsaxonb-java librsvg2-bin pkg-config libprotobuf-c-dev protobuf-c-compiler command: | sudo apt-get update sudo apt-get install -y cmake gettext libsaxonb-java librsvg2-bin pkg-config libprotobuf-c-dev protobuf-c-compiler - cmake ./ -Dsvg2png_scaling:STRING=-1,24,32,48,64,96,128 -Dsvg2png_scaling_nav:STRING=-1,24,32,48,64,96,128 -Dsvg2png_scaling_flag:STRING=-1,24,32,64,96 + cmake ./ -Dsvg2png_scaling:STRING=-1,24,32,48,64,96,128,192,256 -Dsvg2png_scaling_nav:STRING=-1,24,32,48,64,96,128,192,256 -Dsvg2png_scaling_flag:STRING=-1,24,32,64,96 -DUSE_PLUGINS=n -DBUILD_MAPTOOL=n -DXSL_PROCESSING=y -DXSLTS=android,lionel -DANDROID=y -DSAMPLE_MAP=n - run: name: Process icons command: | cd navit/icons make mkdir ../android/res/drawable-nodpi - rename 'y/A-Z/a-z/' * + rename 'y/A-Z/a-z/' *.png cp *.png ../android/res/drawable-nodpi cd ../../ - run: diff --git a/navit/gui/internal/gui_internal.c b/navit/gui/internal/gui_internal.c index 74cadce7b..abe67af33 100644 --- a/navit/gui/internal/gui_internal.c +++ b/navit/gui/internal/gui_internal.c @@ -2698,11 +2698,8 @@ static void gui_internal_resize(void *data, int wnew, int hnew) { gui_internal_setup(this); - if (this->root.w != wnew || this->root.h != hnew) { - this->root.w=wnew; - this->root.h=hnew; - changed=1; - } + changed=gui_internal_menu_needs_resizing(this, &(this->root), wnew, hnew); + /* * If we're drawing behind system bars on Android, watching for actual size changes will not catch * fullscreen toggle events. As a workaround, always assume a size change if padding is supplied. diff --git a/navit/gui/internal/gui_internal_menu.c b/navit/gui/internal/gui_internal_menu.c index 40eb66690..98a2c338e 100644 --- a/navit/gui/internal/gui_internal_menu.c +++ b/navit/gui/internal/gui_internal_menu.c @@ -17,6 +17,27 @@ extern char *version; +/** + * @brief Utility function to check if a menu widget is adapted to the display size or needs resizing (if so, the widget dimensions will be set to match those of the display + * + * @param this The GUI instance + * @param w The menu widget (top widget that should spawn over the entire display) + * @param wdisp The width of the display to check the widget against + * @param hdisp The width of the display to check the widget against + * + * @return true if widget w has the same size as the provided display dimensions + */ + +int gui_internal_menu_needs_resizing(struct gui_priv *this, struct widget *w, int wdisp, int hdisp) { + if (w->w != wdisp || w->h != hdisp) { + w->w=wdisp; + w->h=hdisp; + return 1; + } else { + return 0; + } +} + void gui_internal_menu_destroy(struct gui_priv *this, struct widget *w) { struct menu_data *menu_data=w->menu_data; if (menu_data) { @@ -85,7 +106,7 @@ static void gui_internal_prune_menu_do(struct gui_priv *this, struct widget *w, /* Destroy all menus, backwards, starting from the end until we reach widget w, and redraw widget w */ while ((l = g_list_last(this->root.children))) { wd=l->data; - if (wd == w) { + if (wd == w) { /* This is the widget we want to bring back to display (all subsequent widgets will be destroyed in the loop) */ void (*redisplay)(struct gui_priv *priv, struct widget *widget, void *data); if (!render) return; diff --git a/navit/gui/internal/gui_internal_menu.h b/navit/gui/internal/gui_internal_menu.h index 7bbf7892a..85ab4ff78 100644 --- a/navit/gui/internal/gui_internal_menu.h +++ b/navit/gui/internal/gui_internal_menu.h @@ -2,6 +2,7 @@ struct gui_priv; struct menu_data; struct widget; +int gui_internal_menu_needs_resizing(struct gui_priv *this, struct widget *w, int wdisp, int hdisp); void gui_internal_menu_destroy(struct gui_priv *this, struct widget *w); int gui_internal_widget_reload_href(struct gui_priv *this, struct widget *w); void gui_internal_prune_menu(struct gui_priv *this, struct widget *w); |