~azzar1/unity/fix-722178

« back to all changes in this revision

Viewing changes to src/unityshell.cpp

  • Committer: Jay Taoko
  • Date: 2011-04-26 22:31:28 UTC
  • mfrom: (1180.1.1 unity)
  • Revision ID: jay.taoko@canonical.com-20110426223128-s7x6t6rn83akbgan
Fix bug #753971: This will fix the bug on Intel and ATI GPUs. However there are still issues with NVidia GPUs. This is an issue with the NVidia driver that should be addressed separately.

Show diffs side-by-side

added added

removed removed

Lines of Context:
72
72
  glDisable (GL_LIGHTING);
73
73
 
74
74
  /* reset matrices */
75
 
  glPushAttrib (GL_VIEWPORT_BIT | GL_ENABLE_BIT | GL_TEXTURE_BIT | GL_COLOR_BUFFER_BIT);
 
75
  glPushAttrib (GL_VIEWPORT_BIT | GL_ENABLE_BIT | GL_TEXTURE_BIT | GL_COLOR_BUFFER_BIT | GL_SCISSOR_BIT);
76
76
 
77
77
  glMatrixMode (GL_PROJECTION);
78
78
  glPushMatrix ();
121
121
void
122
122
UnityScreen::paintPanelShadow (const GLMatrix &matrix)
123
123
{
 
124
  if (relayoutSourceId > 0)
 
125
    return;
 
126
    
124
127
  if (PluginAdapter::Default ()->IsExpoActive ())
125
128
    return;
126
129
  
183
186
  
184
187
  wt->RenderInterfaceFromForeignCmd (&geo);
185
188
  nuxEpilogue ();
186
 
  
 
189
 
187
190
  doShellRepaint = false;
188
191
}
189
192
 
825
828
  uScr->NeedsRelayout ();
826
829
  uScr->Relayout();
827
830
  uScr->relayoutSourceId = 0;
 
831
  
 
832
  uScr->cScreen->damageScreen ();
828
833
 
829
834
  return FALSE;
830
835
}
854
859
  return FALSE;
855
860
}
856
861
 
857
 
void
858
 
OnMonitorChanged (GdkScreen* screen,
859
 
                  gpointer   data)
860
 
{
861
 
  UnityScreen* uscreen = (UnityScreen*) data;
862
 
  uscreen->ScheduleRelayout (500);
863
 
}
864
 
 
865
 
void
866
 
OnSizeChanged (GdkScreen* screen,
867
 
               gpointer   data)
868
 
{
869
 
  UnityScreen* uscreen = (UnityScreen*) data;
870
 
  uscreen->ScheduleRelayout (500);
 
862
void 
 
863
UnityScreen::outputChangeNotify ()
 
864
{
 
865
  ScheduleRelayout (500);
871
866
}
872
867
 
873
868
UnityScreen::UnityScreen (CompScreen *screen) :
964
959
  g_timeout_add (0, &UnityScreen::initPluginActions, this);
965
960
  g_timeout_add (5000, (GSourceFunc) write_logger_data_to_disk, NULL);
966
961
 
967
 
  g_signal_connect (gdk_screen_get_default (),
968
 
                    "monitors-changed",
969
 
                     G_CALLBACK (OnMonitorChanged),
970
 
                     this);
971
 
  g_signal_connect (gdk_screen_get_default (),
972
 
                    "size-changed",
973
 
                    G_CALLBACK (OnSizeChanged),
974
 
                    this);
975
 
 
976
962
  GeisAdapter::Default (screen)->Run ();
977
963
  gestureEngine = new GestureEngine (screen);
978
964