• Login
sketchucation logo sketchucation
  • Login
๐Ÿค‘ 30% Off | Artisan 2 on sale until April 30th Buy Now

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

Scheduled Pinned Locked Moved Plugins
36 Posts 7 Posters 56.1k Views
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 16 Jun 2010, 18:05

    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
    • T Offline
      thomthom
      last edited by 16 Jun 2010, 18:12

      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 16 Jun 2010, 18:19

        @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
        • K Offline
          ken
          last edited by 16 Jun 2010, 19:23

          @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
          • T Offline
            thomthom
            last edited by 16 Jun 2010, 19:25

            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 16 Jun 2010, 19:37

              @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 17 Jun 2010, 14:41

                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
                • K Offline
                  ken
                  last edited by 17 Jun 2010, 15:26

                  @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 17 Jun 2010, 17:10

                    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
                    • T Offline
                      thomthom
                      last edited by 17 Jun 2010, 17:11

                      @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 17 Jun 2010, 18:05

                        @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 17 Jun 2010, 19:35

                          @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
                          • C Offline
                            CadFather
                            last edited by 17 Jun 2010, 21:19

                            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
                            • T Offline
                              thomthom
                              last edited by 17 Jun 2010, 21:27

                              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
                              • C Offline
                                CadFather
                                last edited by 18 Jun 2010, 08:37

                                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
                                • T Offline
                                  thomthom
                                  last edited by 18 Jun 2010, 09:09

                                  @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
                                  • C Offline
                                    CadFather
                                    last edited by 18 Jun 2010, 09:29

                                    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
                                    • T Offline
                                      thomthom
                                      last edited by 18 Jun 2010, 09:31

                                      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
                                      • C Offline
                                        CadFather
                                        last edited by 18 Jun 2010, 09:36

                                        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
                                        • T Offline
                                          thomthom
                                          last edited by 18 Jun 2010, 09:40

                                          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
                                          1 / 2
                                          • First post
                                            7/36
                                            Last post
                                          Buy SketchPlus
                                          Buy SUbD
                                          Buy WrapR
                                          Buy eBook
                                          Buy Modelur
                                          Buy Vertex Tools
                                          Buy SketchCuisine
                                          Buy FormFonts

                                          Advertisement