Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

SWT/Devel/Gtk

< SWT‎ | Devel
Revision as of 11:26, 5 August 2015 by Lufimtse.redhat.com (Talk | contribs)

SWT Gtk Development

Here are links to sections that are too big for this page:

  1. Compiling various versions of Gtk
  2. Defining a version specific Gtk macro to prevent compilation errors
  3. Eliminating "sentinel" warnings on SWT JNI compilation

Launching Eclipse with SWT source code

To test SWT snippets, it's useful to launch a child Eclipse with your patch to see how it looks and feels. To do so, under run-configurations, right click on "Eclipse Application" and select "new".

Eclipse Application

Common troubleshooting

Often Eclipse won't launch with various errors. Below are common steps to troubleshoot.

  • API Baseline: Make sure API Base line is set. If you updated Eclipse (e.g Luna to Mars), you may need to re-create the baseline.
  • Enable Execution Environments: Make sure that relevant Execution Environments are enabled. (1.5, 1.6 etc..)
Eclipse Execution Environments
  • Target Platform: Make sure to have an Target Platform set. Try re-creating it with Default for running platform.
  • Validate Plugins: In the run-time configuration for a Child Eclipse, under the 'Plug-ins' tab, instead of launching all plugins, try to select only SWT and it's binaries. Try to Validate the setup to see if there are missing dependencies.
  • re-create new run-time configuration: Often after updating Eclipse version, I have to create new "Eclipse Application" run time configurations for the child Eclipse to launch propertly

Tips

  • Choice of child Eclipse Workspace: Instead of using a blank workspace, copy your exiting workspace, append '-runtime' and use that for your child Eclipse.

Patch Submission guidelines

When submitting patches, you should consider the following:

General checklist

  • Your patches must compile/build on both Gtk2 and Gtk3.

Also keep in mind

  • Avoid refactoring code in the same patch as a bug-fix. Instead split it up into two commits. [1]
  • Please avoid removing white spaces in the same commit as a bugfix. [2]
  • Your code should follow SWT code style. See the code in other widgets for guidance. [3]
  • Avoid introducing methods that are only called once. But if you see the same code many times, it makes sense to add a method for it.
  • When removing code that calls internal functions, check that those functions are actually still called else where. Avoid leaving dead methods in the code.

General etiquette

  • Description : It's recommended to mention how you tested your patch at the end of the description. [4]
  • When you submit new patch sets, in the comment please describe what you improved on (unless it's a trivial thing). Often when reviewing multiple patch sets it's easy to loose track what was done in each patch set.
  1. This makes it easier to rollback broken commits and avoids merge conflicts.
  2. Reviewing patches that consist of a lot of white space removal and a few actual code changes is tedious and causes merge conflicts. Instead submit white space removal in a separate patch.
  3. E.g use '!=' instead of '>' for bit checks. (TODO, add wiki page on SWT code style)
  4. E.g "Tested on Gtk2.24, Gtk3.14, Gtk3.16 on Snippet123. Also tested with child Eclipse on Luna and Mars"

Wayland Development

Wayland (wiki) is a rendering engine, intended to be a replacement for X Window System (wiki).

Launching wayland

In fedora 21+, you can run things on Wayland. There are several ways:

Log into Gnome Wayland

Log out and then on the logon screen, click on the gear icon and select "Gnome Wayland". See example screenshot. At the time of writing (2015.07.21) things like drag and drop and copy and paste did not work. So using Gnome-Wayland full time is difficult.

Launch Gnome Wayland in other Virtual Console

Alternatively, you can press Ctl+Alt+F3 etc.. to launch a virtual console. You login with your own user. Then run Gnome Wayland via:

   gnome-session --session gnome-wayland

Then you can press Ctrl+Alt+F2 to get back to your original session.

How to identify if your app runs on Wayland as backend

Wayland has a notion of XWayland. This is so that you can run Gtk2 apps on Wayland. Since Wayland and X applications look almost the same, it's tricky to tell them appart.

There are several ways to tell.

  • Launch Gtk Inspector. Under "General" tab, look under "Gdk Backend".
  • Launch looking glass "lg", top left click on "Windows" Tab, then click on one of the appliactions in the list, inspect 'Gtype'. E.g
           Gtype:MetaWindowX11          # X11
           Gtype:MetaWindowWayland      # Wayland

See Also Eclipse Wiki Pages

These are pages mostly for special interest.

See Also External

Back to the top