1.1 --- a/Client/MainForm.cs	Thu Sep 03 20:05:09 2015 +0200
     1.2 +++ b/Client/MainForm.cs	Thu Sep 24 14:35:50 2015 +0200
     1.3 @@ -220,6 +220,16 @@
     1.4              layout.Columns[1].Width = 25F;
     1.5              //Send layout to server
     1.6              iClient.SetLayout(layout);
     1.7 +
     1.8 +            //Set texts
     1.9 +            iClient.CreateFields(new DataField[]
    1.10 +            {                
    1.11 +                new DataField(0, textBoxTop.Text, Alignment),
    1.12 +                new DataField(1, textBoxBottom.Text, Alignment),
    1.13 +                new DataField(2, "Third text field", Alignment),
    1.14 +                new DataField(3, "Forth text field", Alignment)
    1.15 +            });
    1.16 +
    1.17          }
    1.18  
    1.19          private void buttonSetBitmap_Click(object sender, EventArgs e)
     2.1 --- a/Server/MainForm.cs	Thu Sep 03 20:05:09 2015 +0200
     2.2 +++ b/Server/MainForm.cs	Thu Sep 24 14:35:50 2015 +0200
     2.3 @@ -133,6 +133,7 @@
     2.4              UpdateStatus();
     2.5  
     2.6              //We have a bug when drawing minimized and reusing our bitmap
     2.7 +            //Though I could not reproduce it on Windows 10
     2.8              iBmp = new System.Drawing.Bitmap(tableLayoutPanel.Width, tableLayoutPanel.Height, PixelFormat.Format32bppArgb);
     2.9              iCreateBitmap = false;
    2.10  
    2.11 @@ -879,8 +880,9 @@
    2.12  					//Draw to bitmap
    2.13  					if (iCreateBitmap)
    2.14  					{
    2.15 -						iBmp = new System.Drawing.Bitmap(tableLayoutPanel.Width, tableLayoutPanel.Height, PixelFormat.Format32bppArgb);
    2.16 -					}
    2.17 +                        iBmp = new System.Drawing.Bitmap(tableLayoutPanel.Width, tableLayoutPanel.Height, PixelFormat.Format32bppArgb);
    2.18 +                        iCreateBitmap = false;
    2.19 +                    }
    2.20  					tableLayoutPanel.DrawToBitmap(iBmp, tableLayoutPanel.ClientRectangle);
    2.21  					//iBmp.Save("D:\\capture.png");
    2.22  
    2.23 @@ -1269,8 +1271,8 @@
    2.24          {
    2.25              if (WindowState == FormWindowState.Minimized)
    2.26              {
    2.27 -                // Do some stuff
    2.28 -                //iBmp = new System.Drawing.Bitmap(tableLayoutPanel.Width, tableLayoutPanel.Height, PixelFormat.Format32bppArgb);
    2.29 +                // To workaround our empty bitmap bug on Windows 7 we need to recreate our bitmap when the application is minimized
    2.30 +                // That's apparently not needed on Windows 10 but we better leave it in place.
    2.31                  iCreateBitmap = true;
    2.32              }
    2.33          }
    2.34 @@ -1502,11 +1504,18 @@
    2.35                      //Don't change a thing if the layout is the same
    2.36                      if (!client.Layout.IsSameAs(aLayout))
    2.37                      {
    2.38 +                        Debug.Print("SetClientLayoutThreadSafe: Layout updated.");
    2.39                          //Set our client layout then
    2.40                          client.Layout = aLayout;
    2.41 +                        //Layout has changed clear our fields then
    2.42 +                        client.Fields.Clear();
    2.43                          //
    2.44                          UpdateClientTreeViewNode(client);
    2.45                      }
    2.46 +                    else
    2.47 +                    {
    2.48 +                        Debug.Print("SetClientLayoutThreadSafe: Layout has not changed.");
    2.49 +                    }
    2.50                  }
    2.51              }
    2.52          }
    2.53 @@ -1553,7 +1562,7 @@
    2.54                  layoutChanged = true;
    2.55              }
    2.56  
    2.57 -            //Now that we know hour fields are in place just update that one
    2.58 +            //Now that we know our fields are in place just update that one
    2.59              client.Fields[aField.Index] = aField;
    2.60  
    2.61              if (client.Fields[aField.Index].IsSameLayout(aField))
    2.62 @@ -1602,6 +1611,14 @@
    2.63                          UpdateTableLayoutPanel(iCurrentClientData);
    2.64                      }
    2.65                  }
    2.66 +                else
    2.67 +                {
    2.68 +                    Debug.Print("Layout has not changed.");
    2.69 +                }
    2.70 +            }
    2.71 +            else
    2.72 +            {
    2.73 +                Debug.Print("WARNING: content and layout have not changed!");
    2.74              }
    2.75  
    2.76              //When a client field is set we try switching to this client to present the new information to our user