summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLionel AINS <lains@caramail.com>2018-11-16 08:34:57 +0100
committerLionel AINS <lains@caramail.com>2018-11-16 08:34:57 +0100
commit7562c5a8f9b404168f7fceeb9ecd202c63586f4f (patch)
treeceb36397250c77539983163f554d1462e24e4535
parent91e6a05e1520926a9c5897fca4b64bdcf11791ad (diff)
downloadnavit-7562c5a8f9b404168f7fceeb9ecd202c63586f4f.tar.gz
Creating gui_internal_menu_needs_resizing() function from existing code
-rw-r--r--.circleci/config.yml6
-rw-r--r--navit/gui/internal/gui_internal.c7
-rw-r--r--navit/gui/internal/gui_internal_menu.c23
-rw-r--r--navit/gui/internal/gui_internal_menu.h1
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);