karlch / vimiv-qt

An image viewer with vim-like keybindings
https://karlch.github.io/vimiv-qt/
GNU General Public License v3.0
179 stars 14 forks source link

Bar not shown in command mode #45

Closed woefe closed 5 years ago

woefe commented 5 years ago

I disable the statusbar on startup. When I enter command mode, the bar does not show up and I cannot see what I type, even if I toggle the bar while vimiv is running. Switching to fullscreen mode and back, after showing the bar seems to fix the issue.

Expected behavior: the bar should always show up when I type something in command mode.

[19:38:46] DEBUG: Start: vimiv --log-level debug
[19:38:46] DEBUG: Overriding 'monitor_filesystem' with 'True'
[19:38:46] DEBUG: Overriding 'shuffle' with 'False'
[19:38:46] DEBUG: Overriding 'startup_library' with 'False'
[19:38:46] DEBUG: Overriding 'style' with 'papercolor'
[19:38:46] DEBUG: Overriding 'search.ignore_case' with 'True'
[19:38:46] DEBUG: Overriding 'search.incremental' with 'True'
[19:38:46] DEBUG: Overriding 'image.autoplay' with 'True'
[19:38:46] DEBUG: Overriding 'image.autowrite' with 'True'
[19:38:46] DEBUG: Overriding 'image.overzoom' with '1.0'
[19:38:46] DEBUG: Overriding 'library.width' with '0.3'
[19:38:46] DEBUG: Overriding 'library.show_hidden' with 'False'
[19:38:46] DEBUG: Overriding 'library.file_check_amount' with '30'
[19:38:46] DEBUG: Overriding 'thumbnail.size' with '128'
[19:38:46] DEBUG: Overriding 'slideshow.delay' with '2.0'
[19:38:46] DEBUG: Overriding 'slideshow.indicator' with 'slideshow:'
[19:38:46] DEBUG: Overriding 'statusbar.collapse_home' with 'True'
[19:38:46] DEBUG: Overriding 'statusbar.show' with 'False'
[19:38:46] DEBUG: Overriding 'statusbar.message_timeout' with '5000'
[19:38:46] DEBUG: Overriding 'statusbar.left' with '{mode}'
[19:38:46] DEBUG: Overriding 'statusbar.left_image' with '{mode}'
[19:38:46] DEBUG: Overriding 'statusbar.left_thumbnail' with '{mode}'
[19:38:46] DEBUG: Overriding 'statusbar.center_thumbnail' with 'thumbnail-size}'
[19:38:46] DEBUG: Overriding 'statusbar.center' with '{slideshow-indicator} {slideshow-delay}'
[19:38:46] DEBUG: Overriding 'statusbar.right' with '{keys} {pwd}'
[19:38:46] DEBUG: Overriding 'title.fallback' with 'vimiv'
[19:38:46] DEBUG: Overriding 'title.image' with 'vimiv - {basename}'
[19:38:46] DEBUG: Read configuration from ........./.config/vimiv/vimiv.conf
[19:38:46] DEBUG: Read keybindings from '......./.config/vimiv/keys.conf'
[19:38:46] DEBUG: Initializing early objects
[19:38:46] DEBUG: Registering object '<vimiv.utils.slideshow.Slideshow object at 0x7f8a245611f8>'
[19:38:46] DEBUG: Registering object '<vimiv.imutils.imstorage.Storage object at 0x7f8a24561168>'
[19:38:46] DEBUG: Registering object '<vimiv.imutils.imtransform.Transform object at 0x7f8a205e7128>'
[19:38:46] DEBUG: Registering object '<vimiv.imutils.immanipulate.Manipulator object at 0x7f8a24561678>'
[19:38:46] DEBUG: Registering object '<vimiv.imutils.imfile_handler.ImageFileHandler object at 0x7f8a24561708>'
[19:38:47] DEBUG: Initializing UI
[19:38:47] DEBUG: Registering object '<vimiv.gui.commandline.CommandLine object at 0x7f8a2060bb88>'
[19:38:47] DEBUG: Registering object '<vimiv.gui.bar.Bar object at 0x7f8a2060b5e8>'
[19:38:47] DEBUG: Registering object '<vimiv.gui.image.ScrollableImage object at 0x7f8a2060bdc8>'
[19:38:47] DEBUG: Registering object '<vimiv.gui.thumbnail.ThumbnailView object at 0x7f8a2060bee8>'
[19:38:47] DEBUG: Creating function for status module 'active_name'
[19:38:47] DEBUG: Creating function for status module 'running_indicator'
[19:38:47] DEBUG: Creating function for status module 'delay'
[19:38:47] DEBUG: Creating function for status module 'unprocessed_keys'
[19:38:47] DEBUG: Creating function for status module 'get_index'
[19:38:47] DEBUG: Creating function for status module 'total'
[19:38:47] DEBUG: Creating function for status module 'basename'
[19:38:47] DEBUG: Creating function for status module '_get_zoom_level'
[19:38:47] DEBUG: Registering object '<vimiv.gui.library.Library object at 0x7f8a2053d168>'
[19:38:47] DEBUG: Registering object '<vimiv.gui.manipulate.Manipulate object at 0x7f8a2053d3a8>'
[19:38:47] DEBUG: Registering object '<vimiv.gui.completionwidget.CompletionView object at 0x7f8a2053d708>'
[19:38:47] DEBUG: Registering object '<vimiv.completion.completer.Completer object at 0x7f8a2053d798>'
[19:38:47] DEBUG: Registering object '<vimiv.gui.mainwindow.MainWindow object at 0x7f8a2060b558>'
[19:38:47] DEBUG: Opening paths
[19:38:47] DEBUG: Startup completed
[19:38:50] DEBUG: Creating function for command 'command'
[19:38:50] DEBUG: Leaving mode image
[19:38:50] DEBUG: Mode.COMMAND widget focused
[19:38:50] DEBUG: Entered mode Mode.COMMAND
[19:38:50] DEBUG: Creating function for status module 'pwd'
[19:38:50] DEBUG: Ran 'command' succesfully
[19:38:51] DEBUG: Creating function for command 'leave_commandline'
[19:38:51] DEBUG: Leaving mode command
[19:38:51] DEBUG: Mode.IMAGE widget focused
[19:38:51] DEBUG: Entered mode Mode.IMAGE
[19:38:51] DEBUG: Ran 'leave-commandline' succesfully
[19:38:52] DEBUG: Creating function for command 'set'
[19:38:52] DEBUG: Ran 'set statusbar.show!' succesfully
[19:38:52] DEBUG: Leaving mode image
[19:38:52] DEBUG: Mode.COMMAND widget focused
[19:38:52] DEBUG: Entered mode Mode.COMMAND
[19:38:52] DEBUG: Ran 'command' succesfully
[19:38:53] DEBUG: Leaving mode command
[19:38:53] DEBUG: Mode.IMAGE widget focused
[19:38:53] DEBUG: Entered mode Mode.IMAGE
[19:38:53] DEBUG: Ran 'leave-commandline' succesfully
[19:38:54] DEBUG: Creating function for command 'fullscreen'
[19:38:54] DEBUG: Ran 'fullscreen' succesfully
[19:38:56] DEBUG: Ran 'fullscreen' succesfully
[19:38:56] DEBUG: Leaving mode image
[19:38:56] DEBUG: Mode.COMMAND widget focused
[19:38:56] DEBUG: Entered mode Mode.COMMAND
[19:38:56] DEBUG: Ran 'command' succesfully
[19:38:59] DEBUG: Leaving mode command
[19:38:59] DEBUG: Mode.IMAGE widget focused
[19:38:59] DEBUG: Entered mode Mode.IMAGE
[19:38:59] DEBUG: Ran 'leave-commandline' succesfully
[19:39:00] DEBUG: Creating function for command 'quit'
[19:39:00] DEBUG: Ran 'quit' succesfully
karlch commented 5 years ago

I can reproduce the behaviour. It seems like the bar is actually shown but the completion widget is placed on top of the bar as the geometry is set to the complete bottom of the window. The geometry is updated on the resize event, therefore it shows up again when entering fullscreen and leaving again. Any other resize should also trigger this behaviour.

The fix should be to update the geometry of the completion widget when entering command mode.