This includes removal of GtkUIManager and GtkAction. - All ui.xml files will be removed - Most actions were moved to thunar-launcher and/or thunar-window - Menus will be created on click now (changing menus whenever the selected files change has several downsides) - WIP branch: https://github.com/alexxcons/thunar/tree/ReplaceGtkAction2 (As well includes full context menu on pathbar , which will be part of Bug #14410 ) Pending things to do: Tasks: - finish check for mem-leaks. - re-write git history in a meaningful way. Try to keep thunar runable on each commit - open code review, explain decisions Known Bugs: - When right click a folder in bulk renamer: (thunar:5481): thunar-CRITICAL **: 21:19:53.015: thunar_window_has_shortcut_sidepane: assertion '(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) ((window)); GType __t = ((thunar_window_get_type ())); gboolean __r; if (!__inst) __r = (0); else if (__inst->g_class && __inst->g_class->g_type == __t) __r = (!(0)); else __r = g_type_check_instance_is_a (__inst, __t); __r; }))))' failed Traceback (most recent call last): This change will as well fix the following bugs: Bug #10678, Bug #16256
This change will as well fix the following bugs: Bug #14026
> Tasks: > - finish check for mem-leaks. finished / fixed > Known Bugs: > - When right click a folder in bulk renamer: > (thunar:5481): thunar-CRITICAL **: 21:19:53.015: > thunar_window_has_shortcut_sidepane: assertion '(((__extension__ ({ > GTypeInstance *__inst = (GTypeInstance*) ((window)); GType __t = > ((thunar_window_get_type ())); gboolean __r; if (!__inst) __r = (0); else if > (__inst->g_class && __inst->g_class->g_type == __t) __r = (!(0)); else __r = > g_type_check_instance_is_a (__inst, __t); __r; }))))' failed > Traceback (most recent call last): fixed Next TODO: re-write git history in a meaningful way. Try to keep thunar runable on each commit
Found a bug for the WIP branch: When doing DnD, thunar seems to enter a endless loop (high CPU + freeze) ... investigating that. Most recent WIP branch, based on most recent master (Tidyup history is WIP): https://github.com/alexxcons/thunar/tree/ReplaceGtkAction16
(In reply to alexxcons from comment #3) > Found a bug for the WIP branch: > When doing DnD, thunar seems to enter a endless loop (high CPU + freeze) ... > investigating that. Fixed in https://github.com/alexxcons/thunar/tree/ReplaceGtkAction17
Most recent branch, which partly has some git history: https://github.com/alexxcons/thunar/tree/ReplaceGtkAction41 Found another bug: Keyboard navigation (arrow keys) on window menu do not work. (They do work if the related menu got created once before)
Hi Alex, I've found a (minor) bug on ReplaceGtkAction41 If you have two tabs open with different view types, then the state of the view type radio buttons does not get updated when switching tabs. So to reproduce, open a new tab, change the view type to something different, then change back to your original tab; the original tab will still have the same type of view as before, but the radio buttons will have the state of the second tab. Hopefully we'll have per directory view settings soon (it's taken me a lot longer than I though to grok the thunar internals, but hopefully I get it now!) Thanks!
Thanks for reporting Reuben! I can reproduce it ... I'll look into it.
(In reply to Reuben Green from comment #6) > Hi Alex, I've found a (minor) bug on ReplaceGtkAction41 Fixed now in ReplaceGtkAction42 (as well switched back to old-style commit message and bumped xfce4ui version to min requirement) Pending bugs: Keyboard navigation (arrow keys) on window menu do not work. (They do work if the related menu got created once before)
Hi Alex. So here is a bug that I've found on ReplaceGtkAction42. To reproduce: change the view type via the radio buttons then press Ctrl-A to select all Then the following warnings happen (thunar:17200): GLib-GObject-WARNING **: 14:13:52.340: invalid unclassed pointer in cast to 'ThunarStandardView' (thunar:17200): thunar-CRITICAL **: 14:16:33.376: thunar_standard_view_select_all_files: assertion '(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) ((standard_view)); GType __t = ((thunar_standard_view_get_type ())); gboolean __r; if (!__inst) __r = (0); else if (__inst->g_class && __inst->g_class->g_type == __t) __r = (!(0)); else __r = g_type_check_instance_is_a (__inst, __t); __r; }))))' failed I think on some systems this causes a segfault, see comment 66 in bug #3521 (although that was with a patch of mine applied, but it seems to be the same bug). I have taken backtraces of these warnings (via G_DEBUG=fatal-warnings) and I will attach them here. Thanks!
Created attachment 9786 First backtrace
Created attachment 9787 second backtrace
(In reply to Reuben Green from comment #9) > Hi Alex. So here is a bug that I've found on ReplaceGtkAction42 ... Thanks alot for the research Reuben ! I can reproduce the bug. "thunar_standard_view_append_accelerators" will register to the accel key using a specific view as object. Even when I change the code to do so in thunar_window_action_view_changed, it looks like to object used to pass to the callback is not updated when the view is changed, so I guess the method will be called with a view which does not exist any more. I'll check if "gtk_accel_group_disconnect" does the trick, so that the new view can register for an accel path ... or worst case, I have to move all the related Actions into thunar-window and call select_all_files there .. possibly throug thunar -view.
Created attachment 9807 use defalut view type Another bug, but this time I have a patch for it (patch is against ReplaceGtkAction45). The bug is that the default view set via the preferences dialog is not respected, and instead the last view is always used. To reproduce, set the default view to eg details view, then close thunar while viewing a directory in eg icon view. When you next start thunar, you'll be in icon view not details view. The bug is caused by the call to thunar_window_action_view_changed in thunar_window_set_current_directory having window->view_type as an argument instead of the function's type variable. The first commit in the patch fixes this, and also adds some necessary calls in thunar_window_init to ensure that the necessary types are all registered. If you just correct "window->view_type" to "type" in thunar_window_set_current_directory without adding the g_type_ensure calls, you can get segfaults (eg if you do the reproducer steps above). The second commit removes all the last-view related code in thunar_window_init, as I think the previous commit makes it redundant, and after some quick testing it seems that removing it has no bad effects (but I did not test it very much). (I found this while working on bug #3521, which is proving to be much more complicated than I thought, but it is teaching me lots about the thunar code and using gtk/glib, so it's good!)
(In reply to Reuben Green from comment #13) > Created attachment 9807 > use defalut view type Thanks Reuben, though something is wrong there: - not setting "default-view" will just crash thunar - last-view seems to be not used any more .. whenever I start thunar, I get icon-view (however could be me doing something wrong .. I see the same when using thunar-master) If I get it correctly, the idea is to use "last-view", if available (like for all other last_xxx items) For some reason I dont fully understand, there is as well "default-view" .. maybe for the first thunar startup ? So if "last-view" is not available, I think we should fallback to "default-view". (That I missed to implement) If that is as well not available, we should fallback to e.g. "ThunarIconView". You share that idea of how it should work ? Or possibly I am wrong there ?
(In reply to alexxcons from comment #14) > - not setting "default-view" will just crash thunar I tried removing the "default-view" setting via xconf, but this does not cause a crash for me. What are your steps to make this crash? So I think the intended behaviour here is as follows. The default view (set via the preferences dialog) is the view type thunar should use when making a new window (so for example every time thunar starts up). You can set the default view to any of icon view, compact view, details view, or last active view. If you set it to last active view, then thunar will use the last view type (from the "last-view" property) for the tab in the new window. This behaviour is how it works currently in master. As far as I can tell from some testing, my patch makes thunar behave as I described above (and thus in the same way as master). I guess we should keep the behaviour as it has been up to now, unless we can think of a better way? Thanks!
(In reply to Reuben Green from comment #15) > (In reply to alexxcons from comment #14) > > > - not setting "default-view" will just crash thunar > I tried removing the "default-view" setting via xconf, but this does not > cause a crash for me. What are your steps to make this crash? I used xfce4-settings-editor to either put "empty string" or some random string into "default-view" ... no problem, I can further debug that and provide a fallback. > So I think the intended behaviour here is as follows. The default view (set > via the preferences dialog) Uh, damn .. I overlooked that setting in the preferences dialog :) ok, now everything makes sense to me :P Sorry for beeing a bit confused .... yes I totally agree that we should keep that functionallity :) Thank salot for your patches, just pushed them to 'ReplaceGtkAction45' ! I as well pushed two more fixes to 'ReplaceGtkAction45'. And I pushed a fix to the master branch of libxfce4ui (double registration of accelerators, causing the crash above), which is now required when building #45. The following is now fixed: - Crash when switching view and than pressing <Primary>A (select all) - Keyboard navigation (arrow keys) on window menu do work now Pending bugs: - Shortcuts for UCAs do not work / are not shown (that used to work at some previous iteration .. have to sort it out) - Shortcuts without menu binding do not work (e.g. cycle tabs) .. have to be added manuall. Consequence of recent changes in libxfce4ui - crash if xfconf value "default-view" is empty
Pending bugs: - crash while doing keyboard navigation in window-menu: crash (F10 , up, left, right --> crash) .. as well often freeze on up/down ... meh, my hope was that bugs would get less over time :)
(In reply to alexxcons from comment #16) > (In reply to Reuben Green from comment #15) > > (In reply to alexxcons from comment #14) > > > > > - not setting "default-view" will just crash thunar > > I tried removing the "default-view" setting via xconf, but this does not > > cause a crash for me. What are your steps to make this crash? > I used xfce4-settings-editor to either put "empty string" or some random > string into "default-view" ... no problem, I can further debug that and > provide a fallback. Right, I can get this crash now, and I see why it's happening. I think I can fix it fairly easily - I'll try to get a patch up soon.
Created attachment 9813 prevent crashes when properties have junk values So here is a patch (to go over my previous patch) to prevent thunar from crashing when the "default-view" or "last-view" properties have bad values (eg empty string, random nonsense). I've given it a quick test and it seems to work.
(In reply to Reuben Green from comment #19) > Created attachment 9813 > prevent crashes when properties have junk values > > So here is a patch (to go over my previous patch) to prevent thunar from > crashing when the "default-view" or "last-view" properties have bad values > (eg empty string, random nonsense). I've given it a quick test and it seems > to work. Thanks Reuben, works fine now for me! Pushed it to #45. Hope I have time to fix the other pending bugs soon. Pending bugs: - Shortcuts for UCAs do not work / are not shown (that used to work at some previous iteration .. have to sort it out) - Shortcuts without menu binding do not work (e.g. cycle tabs) .. have to be added manuall. Consequence of recent changes in libxfce4ui - crash while doing keyboard navigation in window-menu: crash (F10 , up, left, right --> crash) .. as well often freeze on up/down
Created attachment 9823 quick diff that seems to work Hi Alex, another bug on ReplaceGtkAction45. The bug is that pressing the delete button with one or more files selected does not do anything, and in particular does not move them to the trash as expected. I had a very quick go at fixing this one, and the attached diff seems to fix it, but I don't really know what I am doing here so this might break something else.
(In reply to Reuben Green from comment #21) > Created attachment 9823 > quick diff that seems to work > Thanks for the suggestion! Though there is a major defect in the handling of accelerators currently, which I have to solve in some way. All accelerators which dont have a fixed menu item currently will not work any more. I will report back when I found a sane way out of this.
(In reply to alexxcons from comment #22) > Thanks for the suggestion! Though there is a major defect in the handling of > accelerators currently, which I have to solve in some way. > All accelerators which dont have a fixed menu item currently will not work > any more. > I will report back when I found a sane way out of this. Ah, sorry, I see you mentioned this in comment 20.
Created attachment 9828 patch to add null checks So here's a patch to fix another bug on ReplaceGtkAction45. To reproduce the bug: open a second tab (e.g Ctrl^t), go up to the parent directory in that tab, then switch back to the original tab. On my system this produces four thunar-CRITICAL warnings from thunar_standard_view_append_menu_item, followed by a segfault. The problem seems to be that the functions thunar_window_create_xxx_menu assume window->view is not NULL, but it might be. This patch adds checks to deal with this. I've given it a quick test and it does not seem to break any menu functionality that I can see. Also on my system, doing things such as changing the view or clicking into a sub directory generate warnings of the form (thunar:21309): GLib-GObject-CRITICAL **: 18:25:24.058: g_object_unref: assertion 'G_IS_OBJECT (object)' failed From some very quick investigations, these all seem to be caused by the call to gtk_menu_item_set_submenu in thunar_window_create_file_menu, but I have not got any further than that. Thanks!
(In reply to Reuben Green from comment #24) > Created attachment 9828 > patch to add null checks > > So here's a patch to fix another bug on ReplaceGtkAction45. I can reproduce that glitch. Patch applied to the branch, thanks alot Reuben ! I meanwhile fixed the broken accelerator situation. ... meh, that as well resulted in having this one back: Bug: Crash when chaning views + pressing "select all" --> concrete view type is wrong, I'll further check I'll look into another solution for it. Again the most recent Libxfce4ui version will be required to build ReplaceGtkAction45 Pending bugs: Bug: Crash when chaning views + pressing "select all" --> concrete view type is wrong, I'll further check Bug: Only use accelerators if selection allows so (E.g. F2 if no file is selected) Bug: Shortcuts for UCAs do not work -- thunarx-menu-item needs new property accel_path ! Bug: crash in bulk renamer on repeadatly rename: gdb --args thunar/.libs/thunar -B
Fixed now by disconnecting accelerators whenever the view is finalized: Bug: Crash when chaning views + pressing "select all" --> concrete view type is wrong, I'll further check Again the most recent Libxfce4ui version will be required to build ReplaceGtkAction45 Pending bugs: Bug: Only use accelerators if selection allows so (E.g. F2 if no file is selected) Bug: Shortcuts for UCAs do not work -- thunarx-menu-item needs new property accel_path ! Bug: crash in bulk renamer on repeadatly rename: gdb --args thunar/.libs/thunar -B
Fixed: Shortcuts for UCAs do not work -- thunarx-menu-item needs new property accel_path ! Pending bugs: Bug: Only use accelerators if selection allows so (E.g. F2 if no file is selected) Bug: crash in bulk renamer on repeadatly rename: gdb --args thunar/.libs/thunar -B Bug: Critical warnings and crash when using bookmark shortcuts + opening "go" menu
- Bulk renamer crash was not related to my branch: Bug #16824 - Fixed: Critical warnings and crash when using bookmark shortcuts + opening "go" menu Pending bugs: - Only use accelerators if selection allows so (E.g. F2 possible if no file is selected) Known difference: - Copy/Cut in window menu are only shown when files are selected (insensitive before)
Alexander Schwinn referenced this bugreport in commit 4e06221b56fedaa5bcc06432563b05ea7b2129b1 moved all actions which can be re-used by other widgets from standard-view to launcher (Bug #16654) - Make use of XfceGtkActionEntries https://gitlab.xfce.org/xfce/thunar/commit/4e06221b56fedaa5bcc06432563b05ea7b2129b1
Alexander Schwinn referenced this bugreport in commit 25ef9f3c61bc873a58f830d6940c9837acfd5068 Introduced widget thunar-menu in order to unify the way menus are build in thunar, and used it for the context menu (Bug #16654) https://gitlab.xfce.org/xfce/thunar/commit/25ef9f3c61bc873a58f830d6940c9837acfd5068
Alexander Schwinn referenced this bugreport in commit f95d86aaaf5c10465b0f666bca2409db80f1b51f Add possibility to send to shortcuts in launcher (Bug #16654) https://gitlab.xfce.org/xfce/thunar/commit/f95d86aaaf5c10465b0f666bca2409db80f1b51f
Alexander Schwinn referenced this bugreport in commit c7dd510ccb7a4aaff415da1573f49eb355875a1c Moved thunar-tempates-action (aka "create document" menu item) into launcher (Bug #16654) - moved thunar-file-comparison from within thunar-tempates-action into thunar-file https://gitlab.xfce.org/xfce/thunar/commit/c7dd510ccb7a4aaff415da1573f49eb355875a1c
Alexander Schwinn referenced this bugreport in commit ab9c64c83c84eac56d1c30cd18075d95c9cd847c Use thunar-menu and xfce_gtk_tool_button in bulk renamer (Bug #16654) https://gitlab.xfce.org/xfce/thunar/commit/ab9c64c83c84eac56d1c30cd18075d95c9cd847c
Alexander Schwinn referenced this bugreport in commit 51bfd06274f90417d6bc7c999e7793583a5832b3 re-enable file-selection after create/rename (Bug #16654) https://gitlab.xfce.org/xfce/thunar/commit/51bfd06274f90417d6bc7c999e7793583a5832b3
Alexander Schwinn referenced this bugreport in commit 1d6a2e27078fbdfd474fcda25665fee351c70380 Use XfceGtkMenuAction for thunar window menu (Bug #16654) https://gitlab.xfce.org/xfce/thunar/commit/1d6a2e27078fbdfd474fcda25665fee351c70380
Alexander Schwinn referenced this bugreport in commit 1bda99475187e836be7ab822ae09ba7e571e1a0e Remove "thunar-trash-action", since it is not used any more (Bug #16654) https://gitlab.xfce.org/xfce/thunar/commit/1bda99475187e836be7ab822ae09ba7e571e1a0e
Alexander Schwinn referenced this bugreport in commit e80e1de9f2d0aaeaff4ea1c7e018c374952fbc9d provide possibility to add menu items for "select one/all/invert" inthunar-standard-view (Bug #16654) https://gitlab.xfce.org/xfce/thunar/commit/e80e1de9f2d0aaeaff4ea1c7e018c374952fbc9d
Alexander Schwinn referenced this bugreport in commit 66aa141f960843483aced8c7e954d103a1f9b8df Re-introduce view-specific menu items (Bug #16654) - Propagate "append-item" methods down into concrete view widgets https://gitlab.xfce.org/xfce/thunar/commit/66aa141f960843483aced8c7e954d103a1f9b8df
Alexander Schwinn referenced this bugreport in commit b293234c1a64bc27207aed35476c3d3a671519fb Re-Introduce support for gesture actions (Bug #16654) https://gitlab.xfce.org/xfce/thunar/commit/b293234c1a64bc27207aed35476c3d3a671519fb
Alexander Schwinn referenced this bugreport in commit 4542272e8fb47ab9aff6b22fcb4540faff9c275a use XfceGtkActionEntry for toolbar - re-introduce history (Bug #16654) support - remove now obsolete thunar-history-action https://gitlab.xfce.org/xfce/thunar/commit/4542272e8fb47ab9aff6b22fcb4540faff9c275a
Alexander Schwinn referenced this bugreport in commit b6df15b805c18d93ea594c571229bf2173fdc04b remove all GtkActionEntries, they are not used any more (Bug #16654) https://gitlab.xfce.org/xfce/thunar/commit/b6df15b805c18d93ea594c571229bf2173fdc04b
Alexander Schwinn referenced this bugreport in commit 91d970c7428a3b2422535d29c7142ef4b08a83cb re-introduce redirection of tooltips into statusbar (Bug #16654) https://gitlab.xfce.org/xfce/thunar/commit/91d970c7428a3b2422535d29c7142ef4b08a83cb
Alexander Schwinn referenced this bugreport in commit 005a67c51800bba4cde8646375c9df15b47f1c0e re-introduce support for thunarx (Bug #16654) https://gitlab.xfce.org/xfce/thunar/commit/005a67c51800bba4cde8646375c9df15b47f1c0e
Alexander Schwinn referenced this bugreport in commit 304884f09bdac87cdd96946e94b73f24094a62c9 re-introduce bookmarks into window menu (Bug #16654) https://gitlab.xfce.org/xfce/thunar/commit/304884f09bdac87cdd96946e94b73f24094a62c9
Alexander Schwinn referenced this bugreport in commit 4ffe781a05edbc58db16e667368fb2814e90059d removed unused signal (back) on thunar-window (Bug #16654) https://gitlab.xfce.org/xfce/thunar/commit/4ffe781a05edbc58db16e667368fb2814e90059d
Alexander Schwinn referenced this bugreport in commit 39d5bba236ec0a3fe225f0cac5dc2827a9dbf96c Remove unused deprecated GtkUiManager (Bug #16654) https://gitlab.xfce.org/xfce/thunar/commit/39d5bba236ec0a3fe225f0cac5dc2827a9dbf96c
Alexander Schwinn referenced this bugreport in commit 49de3bf3be71cb2111d8848ccf8dd4702d96c026 Remove unused *ui.xml files (Bug #16654) https://gitlab.xfce.org/xfce/thunar/commit/49de3bf3be71cb2111d8848ccf8dd4702d96c026
Urgs, sorry for the spam :/ ... guess we should limit the bot noise to master and release branches Fixed: Only use accelerators if selection allows so (E.g. F2 possible if no file is selected) Fixed: sento shown if nothing selected Fixed: zoom sensitive/insensitive Fixed: window menu new file/folder not shown when files are selected Fixed: cut/copy and others not shown insensitive if nothing selected Rebased on current master, squashed all the latest fixes Pending Bug: thunar-CRITICAL when: 1. Go to Filesystem 2. New tab / new window: ... think the end in near :)
Latest branch: https://gitlab.xfce.org/xfce/thunar/-/tree/ReplaceGtkAction52
Moved to personal branch to prevent further spam: https://gitlab.xfce.org/alexxcons/thunar/-/tree/ReplaceGtkAction52
Fixed: thunar-CRITICAL when: 1. Go to Filesystem 2. New tab / new window So far I dd not see any more CRITICAL messages The git history is now okish .. if you insists, here and there I possibly could do more granular commits. As well fixed shift+delete = delete (not trash) and mouse buttons 8+9 for back/forward Finally I think this goddam branch is ready for review / merge \o/ Here the link: https://gitlab.xfce.org/alexxcons/thunar/-/tree/ReplaceGtkAction56
.. and the link for the merge request: https://gitlab.xfce.org/xfce/thunar/-/merge_requests/7
-- GitLab Migration Automatic Message -- This bug has been migrated to xfce.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.xfce.org/xfce/thunar/-/issues/293. Please create an account or use an existing account on one of our supported OAuth providers. If you want to fork to submit patches and merge requests please continue reading here: https://docs.xfce.org/contribute/dev/git/start#gitlab_forks_and_merge_requests Also feel free to reach out to us on the mailing list https://mail.xfce.org/mailman/listinfo/xfce4-dev
test