sketchucation logo sketchucation
    • Login
    ๐Ÿค‘ SketchPlus 1.3 | 44 Tools for $15 until June 20th Buy Now

    [Plugin]ContextMenuOptimizer v2.8 (menu gray-out issue fix)

    Scheduled Pinned Locked Moved Plugins
    36 Posts 7 Posters 56.1k Views 7 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • A Offline
      AlexMozg
      last edited by

      Overview:

      When you use context menu or each command of menu "Edit" any way (including via hot key), this launches all procedural objects initialized by the UI.add_context_menu_handler method.
      As a rule, this procedural objects initialize new objects by Sketchup::Menu.add_item method and UI::Command objects.
      UI::Command objects, unfortunately, cannot be deleted by GC.
      Eventually the menu buffer overflows and all new UI::Command objects, and objects created by Sketchup::Menu.add_item method, stop working correctly.
      And you can see context menu is gray ๐Ÿ˜ข .

      menu.png
      Only restarting Sketchup will fix the issue.

      I think the solution to this is to redefine the methods UI::Command.new and Sketchup::Menu.add_item temporarily at the time of using the Edit menu option. The redefined methods filter their arguments and prevent the initialization of new UI::Command objects, and objects creating by Sketchup::Menu.add_item method, if any have already been initialized.
      My solution was to create an universal buffer for UI::Command objects (UI::COMMANDS, Hash), where each object-command has its extra methods.
      The overflow of the buffer doesn't occures, because we use the same set of the universal object-commands (UI::Command) in the process of work ๐Ÿ˜„ .


      By default plugin runs automatically and
      requires no user intervention in his work.
      When using plugin is not required to overwrite previously
      created scripts that use the context menu.

      The plugin control exercises in menu:
      "File" -> "โ€ข AT โ€ข Utilites" -> "Context Menu Optimizer".
      It includes 2 parameters:
      1)on/off plugin run,
      2)on/off display debug info in Sketchup Ruby Console.

      settings.png


      INSTALLATION:

      The ContextMenuOptimizer plugin works
      for Sketchup versions 5, 6 and 7 (Free and Pro).
      To install the ContextMenuOptimizer plugin, you should unzip
      the file you downloaded (ContextMenuOptimizer.zip in principle)
      into the Sketchup Plugins folder.
      This operation should:
      โ€ข Copy one script file !!!ContextMenuOptimizer_loader.rb
      to the Sketchup Plugins folder.
      โ€ข Create a sub-folder ArchTools, containing the main script files.

      IMPORTANT: Don't rename files!
      ๐Ÿ˜„


      ContextMenuOptimizer v 2.8

      1 Reply Last reply Reply Quote 0
      • thomthomT Offline
        thomthom
        last edited by

        That's might interesting.

        But has anyone experienced any other than Fredo's old plugins to cause the greyouts? After updating his tools I've not experienced this issue any more.

        Thomas Thomassen โ€” SketchUp Monkey & Coding addict
        List of my plugins and link to the CookieWare fund

        1 Reply Last reply Reply Quote 0
        • A Offline
          AlexMozg
          last edited by

          @thomthom said:

          That's might interesting.
          But has anyone experienced any other than Fredo's old plugins to cause the greyouts? After updating his tools I've not experienced this issue any more.

          Not only Fredo's old plugins is cause the problem.

          1 Reply Last reply Reply Quote 0
          • kenK Offline
            ken
            last edited by

            @thomthom said:

            That's might interesting.

            But has anyone experienced any other than Fredo's old plugins to cause the greyouts? After updating his tools I've not experienced this issue any more.

            Yes, I had the greyouts after installing Fredo's new plugin. However, I had just about every plugin there was. So I removed all plugins, loaded only the one I really wanted. Tried to elimate all plugins that called the content menu if I could. I even removed the content menu selection from some plugins. And plugins that had a toolbar and also listed in the plugin or contents menu selections, I would remove these two choice and only use the toolbar.

            So far I have not had the trouble happen. Note, that I don't have 1/2 the menu's that I had before.

            Ken

            Fight like your the third monkey on Noah's Ark gangway.

            1 Reply Last reply Reply Quote 0
            • thomthomT Offline
              thomthom
              last edited by

              Alex, this debug mode: can that help Ken work out which plugin greys out the menus?

              Thomas Thomassen โ€” SketchUp Monkey & Coding addict
              List of my plugins and link to the CookieWare fund

              1 Reply Last reply Reply Quote 0
              • A Offline
                AlexMozg
                last edited by

                @thomthom said:

                Alex, this debug mode: can that help Ken work out which plugin greys out the menus?

                Debugging is for informational purposes and shows the number of objects (Sketchup::Menu, UI::Command) available in the current object space.
                Default debug info is off.
                I think my plugin will solve the Ken's problem.

                1 Reply Last reply Reply Quote 0
                • C Offline
                  craigbic
                  last edited by

                  thomthom, I am still having the problem after updating Fredo's plugins. I do have quite a large collection of plugins that I use so I have learned to live with the context menu gray-out by going to the selection menu under Edit (not sure what this menu is actually called - Edit context menu? - so see 1st screen shot).


                  http://archlight.files.wordpress.com/2010/06/edit_contextmenu_thumb.jpg

                  Can go here instead of right-click context menu if it is grayed out


                  http://archlight.files.wordpress.com/2010/06/plugin_running_thumb.jpg

                  Alex, your plugin is installed properly and is running

                  Alex, I installed your plugin, it is running (see second screen shot) but I am still having the context menu gray-out issue, at least in part (see third screen shot). Most of the options I use such as "Explode" are grayed out.


                  http://archlight.files.wordpress.com/2010/06/stillgrayedout_thumb.jpg

                  Right-click context menu is still grayed out to some degree

                  I'll keep using the Edit menu for now. Just thought you might appreciate the feedback. Thank you for all the hard work! ๐Ÿ˜„ I hope this annoying problem goes away along with toolbar migration. ๐Ÿ˜ฎ

                  Checkout the Sketchup Graphics Blog at http://sketchupgraphics.com

                  1 Reply Last reply Reply Quote 0
                  • kenK Offline
                    ken
                    last edited by

                    @alexmozg said:

                    @thomthom said:

                    Alex, this debug mode: can that help Ken work out which plugin greys out the menus?

                    Debugging is for informational purposes and shows the number of objects (Sketchup::Menu, UI::Command) available in the current object space.
                    Default debug info is off.
                    I think my plugin will solve the Ken's problem.

                    Note: I haven't had the problem since I reload only the plugins I wish to use. I am no longer a plugin groupie. I am being careful, not to have multi plugins for the same purpose. So here is hoping I have solved my problem just by not being a plugin in hog.

                    Tom thanks for the help and Alex thanks for the plugin. If I have a re-occurrence of the problem, I know where I will head.

                    Ken

                    Fight like your the third monkey on Noah's Ark gangway.

                    1 Reply Last reply Reply Quote 0
                    • A Offline
                      AlexMozg
                      last edited by

                      The menu buffer overflows anyway if the number of objects UI::Command becomes more then 500-600!
                      And unfortunately, the predefined context menu commands
                      (such as Explode, Hide, Erace etc.)
                      are not amenable to correction ๐Ÿ˜ž,
                      but the commands of other plugins should always work ๐Ÿ˜„.
                      craigbic
                      โ— In your case, you can only limit the number of plugins which you use.

                      1 Reply Last reply Reply Quote 0
                      • thomthomT Offline
                        thomthom
                        last edited by

                        @alexmozg said:

                        The menu buffer overflows anyway if the number of objects UI::Command becomes more then 500-600!

                        So it's not really the fixed 1000 that Google said?

                        Thomas Thomassen โ€” SketchUp Monkey & Coding addict
                        List of my plugins and link to the CookieWare fund

                        1 Reply Last reply Reply Quote 0
                        • C Offline
                          craigbic
                          last edited by

                          @alexmozg said:

                          The menu buffer overflows anyway if the number of objects UI::Command becomes more then 500-600!
                          And unfortunately, the predefined context menu commands
                          (such as Explode, Hide, Erace etc.)
                          are not amenable to correction ๐Ÿ˜ž,
                          but the commands of other plugins should always work ๐Ÿ˜„.
                          craigbic
                          โ— In your case, you can only limit the number of plugins which you use.

                          Limit plugins? NEVER! Not a big deal - just an annoyance really. Thank you for the explanation and the plugin! Good work! ๐Ÿ˜Ž

                          Checkout the Sketchup Graphics Blog at http://sketchupgraphics.com

                          1 Reply Last reply Reply Quote 0
                          • A Offline
                            AlexMozg
                            last edited by

                            @thomthom said:

                            ...
                            So it's not really the fixed 1000 that Google said?

                            Maybe...
                            500-600 for Sketchup 5, I have been tested it.

                            1 Reply Last reply Reply Quote 0
                            • CadFatherC Offline
                              CadFather
                              last edited by

                              Thom, i'm quite sure the selection toys are causing the issue on my pc - so the google fix is not working after all

                              when i remove S.T. the menu does not grey out even after hours of working ๐Ÿ˜’

                              1 Reply Last reply Reply Quote 0
                              • thomthomT Offline
                                thomthom
                                last edited by

                                That is very odd. I can not reproduce it. Nor does it have the code that Google said caused this.

                                How many plugins had you got installed? I wonder if one might run into this if one just has many menu items - Selection Toys has quite a few. Have you tried disabling some of the menu items?

                                Thomas Thomassen โ€” SketchUp Monkey & Coding addict
                                List of my plugins and link to the CookieWare fund

                                1 Reply Last reply Reply Quote 0
                                • CadFatherC Offline
                                  CadFather
                                  last edited by

                                  thanks that's a good idea, might just be it...well hope so.. after all together there must be something like 500 or 600 plugins in there by now.. ๐Ÿ˜Ž

                                  1 Reply Last reply Reply Quote 0
                                  • thomthomT Offline
                                    thomthom
                                    last edited by

                                    @cadfather said:

                                    thanks that's a good idea, might just be it...well hope so.. after all together there must be something like 500 or 600 plugins in there by now.. ๐Ÿ˜Ž

                                    โ— โ— โ—
                                    Well - that might very likely be the cause. Google said their limit of Command objects where at about 1000 - if you ahve that many you might hit some limit even without some leak like Fredo's tools.

                                    What would be interesting is if you could install one more. (No worries no menus or anything ๐Ÿ˜‰ )
                                    Then open your Ruby Console and type in stats - see what it reports.
                                    Then do some right clicks and see what it reports afterwards.


                                    tt_stats.rb

                                    Thomas Thomassen โ€” SketchUp Monkey & Coding addict
                                    List of my plugins and link to the CookieWare fund

                                    1 Reply Last reply Reply Quote 0
                                    • CadFatherC Offline
                                      CadFather
                                      last edited by

                                      well, 600 was my very quick estimate of all the commands in the folder from didier's spray comps to su2kt

                                      but the stats gives this: (cool thing) - UI:Command objects: 283 of 1000 (28.30%)

                                      so i guess that's still not too greedy..

                                      1 Reply Last reply Reply Quote 0
                                      • thomthomT Offline
                                        thomthom
                                        last edited by

                                        Does it increase during usage? After right-clicking for instance?

                                        Thomas Thomassen โ€” SketchUp Monkey & Coding addict
                                        List of my plugins and link to the CookieWare fund

                                        1 Reply Last reply Reply Quote 0
                                        • CadFatherC Offline
                                          CadFather
                                          last edited by

                                          not for the moment - i think it needs more work-time - i'll put it through the paces this afternoon though.

                                          to be continued.. ๐Ÿ‘

                                          1 Reply Last reply Reply Quote 0
                                          • thomthomT Offline
                                            thomthom
                                            last edited by

                                            Then it can't be the same issue, because you should see increase immediately. (However, you might get different results from what you right click on, Edge,Face,Group,Component.)

                                            Thomas Thomassen โ€” SketchUp Monkey & Coding addict
                                            List of my plugins and link to the CookieWare fund

                                            1 Reply Last reply Reply Quote 0
                                            • 1
                                            • 2
                                            • 1 / 2
                                            • First post
                                              Last post
                                            Buy SketchPlus
                                            Buy SUbD
                                            Buy WrapR
                                            Buy eBook
                                            Buy Modelur
                                            Buy Vertex Tools
                                            Buy SketchCuisine
                                            Buy FormFonts

                                            Advertisement